{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "XuXWJLEm2UWS"
   },
   "source": [
    "# **CS224W - Colab 4**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "8gzsP50bF6Gb"
   },
   "source": [
    "In this Colab, we will shift our focus from homogenous graphs to heterogeneous graphs. Heterogeneous graphs extend the traditional homogenous graphs that we have seen before by specifically incorperating different node and edge types. This additional information allows us to extend the graph neural nework models that we have worked with before. Namely, we can apply heterogenous message passing, where different message types now exist between different node, edge type relationships. \n",
    "\n",
    "At first, we will learn how to transform NetworkX graphs into DeepSNAP representations. Additionally, we will dive deeper into how DeepSNAP stores and represents heterogeneous graphs as PyTorch Tensors.\n",
    "\n",
    "Then, we will build our own heterogenous graph neural netowrk models using PyTorch Geonetric and DeepSNAP on node property prediction task. To evaluate these models, we will use our model on the heterogeneous ACM dataset.\n",
    "\n",
    "**Note**: Make sure to **sequentially run all the cells in each section**, so that the intermediate variables / packages will carry over to the next cell\n",
    "\n",
    "Have fun on Colab 4 :)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "id": "PRfgbfTjCRD_"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'1.6.3'"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import torch_geometric\n",
    "torch_geometric.__version__"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "ZoXlf4MtYrbz"
   },
   "source": [
    "# 1 DeepSNAP Heterogeneous Graph\n",
    "\n",
    "First, we will explore how to transform NetworkX graphs into the format supported by DeepSNAP. \n",
    "\n",
    "In order to extend the traditional DeepSNAP representation of graphs to include heterogenous graphs, we include the following graph property features:\n",
    "* `node_feature`: The feature of each node (`torch.tensor`)\n",
    "* `edge_feature`: The feautre of each edge (`torch.tensor`)\n",
    "* `node_label`: The label of each node (`int`)\n",
    "* `node_type`: The node type of each node (`string`)\n",
    "* `edge_type`: The edge type of each edge (`string`)\n",
    "\n",
    "The key new features we add are `node_type` and `edge_type`, which enables us to perform heterogenous message passing.\n",
    "\n",
    "In this first question we will work with the familiar [karate club graph](https://networkx.github.io/documentation/stable/auto_examples/graph/plot_karate_club.html) seen in assignment one. To start, since each node in the graph belongs to one of two clubs (club \"Mr. Hi\" or club \"Officer\"), we will treat the club as the `node_type`. The code below demonstrates how to differentiate the nodes in the NetworkX graph.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "id": "8LQ_z5gcBVA1"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x504 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from pylab import *\n",
    "import networkx as nx\n",
    "from networkx.algorithms.community import greedy_modularity_communities\n",
    "import matplotlib.pyplot as plt\n",
    "import copy\n",
    "\n",
    "G = nx.karate_club_graph()\n",
    "community_map = {}\n",
    "for node in G.nodes(data=True):  #node第一个元素是索引，第二个元素是相关数据\n",
    "  if node[1][\"club\"] == \"Mr. Hi\":\n",
    "    community_map[node[0]] = 0\n",
    "  else:\n",
    "    community_map[node[0]] = 1\n",
    "node_color = []\n",
    "color_map = {0: 0, 1: 1}\n",
    "node_color = [color_map[community_map[node]] for node in G.nodes()]  #node是索引\n",
    "#虽然但是，为什么要加一层映射啊？\n",
    "pos = nx.spring_layout(G)\n",
    "#https://networkx.org/documentation/stable/reference/generated/networkx.drawing.layout.spring_layout.html\n",
    "#没看懂，总之大概是个画图用的吧……\n",
    "plt.figure(figsize=(7, 7))\n",
    "nx.draw(G, pos=pos, cmap=plt.get_cmap('coolwarm'), node_color=node_color)\n",
    "show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(0, {'club': 'Mr. Hi'})\n",
      "0\n",
      "{'club': 'Mr. Hi'}\n"
     ]
    }
   ],
   "source": [
    "#PRW\n",
    "for node in G.nodes(data=True):\n",
    "    print(node)\n",
    "    print(node[0])\n",
    "    print(node[1])\n",
    "    break"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0\n"
     ]
    }
   ],
   "source": [
    "#PRW\n",
    "for node in G.nodes():\n",
    "    print(node)\n",
    "    break"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "1JpFb9fTw1lg"
   },
   "source": [
    "### Question 1.1: Assigning Node Type and Node Features (Not Specifically Graded)\n",
    "\n",
    "Using the `community_map` dictionary and graph `G` from above, add node attributes `node_type` and `node_label` to the graph G. Namely, for `node_type` assign nodes in the \"Mr. Hi\" club to a node type `n0` and nodes in club \"Officer\" a node type `n1`. \n",
    "\n",
    "Then for `node_label`, assign nodes in \"Mr. Hi\" club to a `node_label` `0` and nodes in club \"Officer\" a `node_label` of `1`.\n",
    "\n",
    "Lastly, assign every node a feature vector [1, 1, 1, 1, 1]. \n",
    "\n",
    "**Hint**: Look at the NetworkX function `nx.classes.function.set_node_attributes`.\n",
    "\n",
    "**Note**: This question is not specifically graded but is important for later questions."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.053936688311688304"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#PRW\n",
    "#上文提及函数的文档：https://networkx.org/documentation/stable/reference/generated/networkx.classes.function.set_node_attributes.html\n",
    "#文档示例1\n",
    "G_eg = nx.path_graph(3)\n",
    "bb = nx.betweenness_centrality(G)  #bb是一个字典\n",
    "\n",
    "nx.set_node_attributes(G_eg, bb, \"betweenness\")\n",
    "G_eg.nodes[1][\"betweenness\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "#PRW\n",
    "new_cm={}\n",
    "for (k,v) in community_map.items():\n",
    "    if v==0:\n",
    "        new_cm[k]='n0'\n",
    "    else:\n",
    "        new_cm[k]='n1'\n",
    "#new_cm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "id": "zev_hMJHJXK1"
   },
   "outputs": [],
   "source": [
    "import torch\n",
    "\n",
    "def assign_node_types(G, community_map):\n",
    "  # TODO: Implement this function that takes in a NetworkX graph\n",
    "  # G and community map assignment (mapping node ids --> 0/1 labels)\n",
    "  # and adds 'node_type' as a node_attribute in G.\n",
    "\n",
    "  ############# Your code here ############\n",
    "  ## (~2 line of code)\n",
    "  ## Note\n",
    "  ## 1. Look up NetworkX `nx.classes.function.set_node_attributes`\n",
    "  new_cm={}\n",
    "  for (k,v) in community_map.items():\n",
    "    if v==0:\n",
    "      new_cm[k]='n0'\n",
    "    else:\n",
    "      new_cm[k]='n1'\n",
    "  #我参考的答案里一种比较优雅的写法：\n",
    "  #node_type_map = {0:'n0', 1:'n1'}\n",
    "  #node_types = {node:node_type_map[community_map[node]] for node in G.nodes()}\n",
    "  nx.set_node_attributes(G,new_cm,'node_type')\n",
    " \n",
    "  #########################################\n",
    "\n",
    "def assign_node_labels(G, community_map):\n",
    "  # TODO: Implement this function that takes in a NetworkX graph\n",
    "  # G and community map assignment (mapping node ids --> 0/1 labels)\n",
    "  # and adds 'node_label' as a node_attribute in G.\n",
    "\n",
    "  ############# Your code here ############\n",
    "  ## (~2 line of code)\n",
    "  ## Note\n",
    "  ## 1. Look up NetworkX `nx.classes.function.set_node_attributes`\n",
    "  nx.set_node_attributes(G,community_map,'node_label')\n",
    "  #########################################\n",
    "\n",
    "def assign_node_features(G):\n",
    "  # TODO: Implement this function that takes in a NetworkX graph\n",
    "  # G and adds 'node_feature' as a node_attribute in G. Each node\n",
    "  # in the graph has the same feature vector [1., 1., 1., 1., 1.]\n",
    "\n",
    "  ############# Your code here ############\n",
    "  ## (~2 line of code)\n",
    "  ## Note\n",
    "  ## 1. Look up NetworkX `nx.classes.function.set_node_attributes`\n",
    "  feature_vector=[1, 1, 1, 1, 1]\n",
    "  nx.set_node_attributes(G,feature_vector,'node_feature')\n",
    "  #########################################\n",
    "\n",
    "assign_node_types(G, community_map)\n",
    "assign_node_labels(G, community_map)\n",
    "assign_node_features(G)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(0, {'club': 'Mr. Hi', 'node_type': 'n0', 'node_label': 0, 'node_feature': [1, 1, 1, 1, 1]})\n"
     ]
    }
   ],
   "source": [
    "#PRW验证函数效果\n",
    "for n in G.nodes(data=True):\n",
    "    print(n)\n",
    "    break"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "mafN0P3EOhSb"
   },
   "source": [
    "### Question 1.2: Assigning Edge Types (Not Specifically Graded)\n",
    "\n",
    "Next, we will assign three different types of `edge_type` to the edges: \n",
    "* Edges within club \"Mr. Hi\": `e0`\n",
    "* Edges within club \"Officer\": `e1`\n",
    "* Edges between clubs: `e2`\n",
    "\n",
    "**Hint**: Use the `community_map` from before and `nx.classes.function.set_edge_attributes`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(0, 1)\n",
      "0\n"
     ]
    }
   ],
   "source": [
    "#PRW\n",
    "#上文提及函数的文档：https://networkx.org/documentation/stable/reference/generated/networkx.classes.function.set_edge_attributes.html\n",
    "\n",
    "for edge in G.edges():\n",
    "    print(edge)\n",
    "    print(edge[0])\n",
    "    break"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'Mr. Hi'"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#PRW\n",
    "G.nodes[0]['club']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'e0'"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "edge2attr_map={}\n",
    "for edge in G.edges():\n",
    "    if G.nodes[edge[0]]['club']=='Mr. Hi' and G.nodes[edge[1]]['club']=='Mr. Hi':\n",
    "        edge2attr_map[edge]='e0'\n",
    "    elif G.nodes[edge[0]]['club']=='Officer' and G.nodes[edge[1]]['club']=='Officer':\n",
    "        edge2attr_map[edge]='e1'\n",
    "    else:\n",
    "        edge2attr_map[edge]='e2'\n",
    "edge2attr_map[(0,1)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "id": "rsbYWEVwSV5n"
   },
   "outputs": [],
   "source": [
    "def assign_edge_types(G, community_map):\n",
    "  # TODO: Implement this function that takes in a NetworkX graph\n",
    "  # G and community map assignment (mapping node ids --> 0/1 labels)\n",
    "  # and adds 'edge_type' as a edge_attribute in G.\n",
    "\n",
    "  ############# Your code here ############\n",
    "  ## (~5 line of code)\n",
    "  ## Note\n",
    "  ## 1. Create an edge assignment dict following rules above\n",
    "  edge2attr_map={}\n",
    "  for edge in G.edges():\n",
    "    if G.nodes[edge[0]]['club']=='Mr. Hi' and G.nodes[edge[1]]['club']=='Mr. Hi':\n",
    "      edge2attr_map[edge]='e0'\n",
    "    elif G.nodes[edge[0]]['club']=='Officer' and G.nodes[edge[1]]['club']=='Officer':\n",
    "      edge2attr_map[edge]='e1'\n",
    "    else:\n",
    "      edge2attr_map[edge]='e2'\n",
    "  nx.set_edge_attributes(G,edge2attr_map,'edge_type')\n",
    "\n",
    "  #########################################\n",
    "  \n",
    "assign_edge_types(G, community_map)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(0, 1, {'edge_type': 'e0'})\n"
     ]
    }
   ],
   "source": [
    "#PRW\n",
    "for edge in G.edges(data=True):\n",
    "    print(edge)\n",
    "    break"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "VBsTdTPVTQ52"
   },
   "source": [
    "## Heterogeneous Graph Visualization\n",
    "\n",
    "Now we can visualize the Heterogeneous Graph we have generated."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "id": "n2sdufbODHtp"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x576 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "edge_color = {}\n",
    "for edge in G.edges():\n",
    "  n1, n2 = edge\n",
    "  edge_color[edge] = community_map[n1] if community_map[n1] == community_map[n2] else 2  #……等等，这行不是完全没用吗？\n",
    "  if community_map[n1] == community_map[n2] and community_map[n1] == 0:\n",
    "    edge_color[edge] = 'blue'\n",
    "  elif community_map[n1] == community_map[n2] and community_map[n1] == 1:\n",
    "    edge_color[edge] = 'red'\n",
    "  else:\n",
    "    edge_color[edge] = 'green'\n",
    "\n",
    "G_orig = copy.deepcopy(G)\n",
    "nx.classes.function.set_edge_attributes(G, edge_color, name='color')\n",
    "colors = nx.get_edge_attributes(G,'color').values()\n",
    "labels = nx.get_node_attributes(G, 'node_type')\n",
    "plt.figure(figsize=(8, 8))\n",
    "nx.draw(G, pos=pos, cmap=plt.get_cmap('coolwarm'), node_color=node_color, edge_color=colors, labels=labels, font_color='white')\n",
    "show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "QRANkF1jRxLV"
   },
   "source": [
    "which include edges within each clubs (2 types) and edges across two clubs (1 type). Different types of nodes and edges are visualized in different colors. The NetworkX object `G` in following code can be transformed into `deepsnap.hetero_graph.HeteroGraph` directly."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "4DW8L0hxbxw4"
   },
   "source": [
    "## Transforming to DeepSNAP representation\n",
    "\n",
    "The NetworkX object `G` in following code can be transformed into `deepsnap.hetero_graph.HeteroGraph` directly!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "id": "-ZfHZ_eoVVGd"
   },
   "outputs": [],
   "source": [
    "from deepsnap.hetero_graph import HeteroGraph\n",
    "\n",
    "hete = HeteroGraph(G_orig)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "izq4t_O9WxDH"
   },
   "source": [
    "## Question 1.3: How many nodes are of each type (10 Points)\n",
    "\n",
    "Submit your answers on Gradescope.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'n0': ['n0', 'n0', 'n0', 'n0', 'n0', 'n0', 'n0', 'n0', 'n0', 'n0', 'n0', 'n0', 'n0', 'n0', 'n0', 'n0', 'n0'], 'n1': ['n1', 'n1', 'n1', 'n1', 'n1', 'n1', 'n1', 'n1', 'n1', 'n1', 'n1', 'n1', 'n1', 'n1', 'n1', 'n1', 'n1']}\n",
      "17\n"
     ]
    }
   ],
   "source": [
    "#PRW\n",
    "print(hete.node_type)\n",
    "print(len(hete.node_type['n0']))\n",
    "#由于之前的失误，我发现如果是0-1这种数字的话，value就是tensor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "id": "wRNSP6nnW78C"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Node type n0 has 17 nodes\n",
      "Node type n1 has 17 nodes\n"
     ]
    }
   ],
   "source": [
    "def get_nodes_per_type(hete):\n",
    "  # TODO: Implement this function that takes a DeepSNAP dataset object\n",
    "  # and return the number of nodes per `node_type`.\n",
    "\n",
    "  num_nodes_n0 = 0\n",
    "  num_nodes_n1 = 0\n",
    "\n",
    "  ############# Your code here ############\n",
    "  ## (~2 line of code)\n",
    "  ## Note\n",
    "  ## 1. Colab autocomplete functionality might be useful.\n",
    "  num_nodes_n0=len(hete.node_type['n0'])\n",
    "  num_nodes_n1=len(hete.node_type['n1'])\n",
    "\n",
    "  #########################################\n",
    "\n",
    "  return num_nodes_n0, num_nodes_n1\n",
    "\n",
    "num_nodes_n0, num_nodes_n1 = get_nodes_per_type(hete)\n",
    "print(\"Node type n0 has {} nodes\".format(num_nodes_n0))\n",
    "print(\"Node type n1 has {} nodes\".format(num_nodes_n1))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "vEsHJp2ZYaE2"
   },
   "source": [
    "## Question 1.4: Message Types: How many edges are of each message type (10 Points)\n",
    "\n",
    "Submit your answers on Gradescope.\n",
    "\n",
    "When working with heterogenous graphs, as we have discussed before, we now work with heterogenous message types (i.e. different message types for `node_type` and `edge_type` combinations). For example, an edge of type `e0` connecting two nodes in club \"Mr. HI\" would have a message type of (`n0`, `e0`, `n0`). In this problem we will analyze how many edges in our graph are of each message type.\n",
    "\n",
    "**Hint**: If you want to learn more about what the different message types are try the call `hete.message_types`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('n0', 'e0', 'n0'), ('n0', 'e2', 'n1'), ('n1', 'e1', 'n1')]"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#PRW\n",
    "hete.message_types"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "#PRW\n",
    "#hete.edge_type[('n0', 'e0', 'n0')]  形式是一个元素全'e0'的列表"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "id": "qobKuqbAYvJ7"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Message type ('n0', 'e0', 'n0') has 35 edges\n",
      "Message type ('n0', 'e2', 'n1') has 11 edges\n",
      "Message type ('n1', 'e1', 'n1') has 32 edges\n"
     ]
    }
   ],
   "source": [
    "def get_num_message_edges(hete):\n",
    "  # TODO: Implement this function that takes a DeepSNAP dataset object\n",
    "  # and return the number of edges for each message type. \n",
    "  # You should return a list of tuples as \n",
    "  # (message_type, num_edge)\n",
    "\n",
    "  message_type_edges = []\n",
    "\n",
    "  ############# Your code here ############\n",
    "  ## (~2 line of code)\n",
    "  ## Note\n",
    "  ## 1. Colab autocomplete functionality might be useful.\n",
    "  for message_type,num_edge in hete.edge_type.items():\n",
    "    message_type_edges.append((message_type,len(num_edge)))\n",
    "\n",
    "  #########################################\n",
    "\n",
    "  return message_type_edges\n",
    "\n",
    "message_type_edges = get_num_message_edges(hete)\n",
    "for (message_type, num_edges) in message_type_edges:\n",
    "  print(\"Message type {} has {} edges\".format(message_type, num_edges))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "bjMVik1JbJ76"
   },
   "source": [
    "## Question 1.5: Dataset Splitting: How many nodes in each dataset split? (10 Points)\n",
    "\n",
    "Submit your answers on Gradescope.\n",
    "\n",
    "DeepSNAP has built in Dataset creation and splitting methods for heterogeneous graphs. Here we will create train, validation, and test datasets for a node prediction task and inspect the resulting subgraphs. Specifically, write a function that computes the number of nodes in each dataset split.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {
    "id": "Ct10Oh4gcqgD"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train dataset has 12 nodes\n",
      "val dataset has 10 nodes\n",
      "test dataset has 12 nodes\n"
     ]
    }
   ],
   "source": [
    "from deepsnap.dataset import GraphDataset\n",
    "\n",
    "def compute_dataset_split_counts(datasets):\n",
    "  # TODO: Implement this function that takes a dict of datasets\n",
    "  # and returns a dict mapping dataset names to the number of labeled\n",
    "  # nodes used for supervision in that respective dataset.  \n",
    "  \n",
    "  data_set_splits = {}\n",
    "\n",
    "  ############# Your code here ############\n",
    "  ## (~3 line of code)\n",
    "  ## Note\n",
    "  ## 1. DeepSNAP `node_label_index` will be helpful.\n",
    "  ## 2. Remember to count both node_types\n",
    "  for ds_name,ds in datasets.items():\n",
    "    #data_set_splits[ds_name]=ds[0].sha\n",
    "    #print(ds_name)  train\n",
    "    #print(ds[0].node_label_index)  {'n0': tensor([10,  8,  3, 12,  0, 13]), 'n1': tensor([ 0,  8,  1, 15,  5,  7])}\n",
    "    data_set_splits[ds_name]=ds[0].node_label_index['n0'].shape[0]+ds[0].node_label_index['n1'].shape[0]\n",
    "\n",
    "  #########################################\n",
    "\n",
    "  return data_set_splits\n",
    "\n",
    "\n",
    "dataset = GraphDataset([hete], task='node')\n",
    "# Splitting the dataset\n",
    "dataset_train, dataset_val, dataset_test = dataset.split(transductive=True, split_ratio=[0.4, 0.3, 0.3])\n",
    "datasets = {'train': dataset_train, 'val': dataset_val, 'test': dataset_test}\n",
    "\n",
    "data_set_splits = compute_dataset_split_counts(datasets)\n",
    "for dataset_name, num_nodes in data_set_splits.items():\n",
    "  print(\"{} dataset has {} nodes\".format(dataset_name, num_nodes))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "lFY2PaDbVKe4"
   },
   "source": [
    "## DeepSNAP Dataset Visualization"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {
    "id": "iiyEw-agbgV8"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x504 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x504 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZQAAAGaCAYAAAAoz7XQAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nOydd1yVdfvHP2cBhpAjQUELFA0jFRTQBEdluBpunIlaaWqamqvxKE3LxJEjbahlqTlyZ/zcgqmgoIaiguAAAXdw9MAZ9++PiwMcOHsA6vV+vXg9h3t+b568P+f7va7rc4kEQRDAMAzDMDYiruoBMAzDMI8GLCgMwzCMXWBBYRiGYewCCwrDMAxjF1hQGIZhGLvAgsIwDMPYBRYUhmEYxi6woDCPJTVr1iz5EYvFqFGjRsnvv/32m9XXbdeuHdasWWPHkTLMw4O0qgfAMFVBQUFByWcfHx/8+OOP6NKlSxWOiGEefniGwjB6UKvV+Oyzz9C4cWM89dRTGDJkCO7evQsAkMvlGDhwIOrUqYNatWqhbdu2uHPnDqZMmYKEhAS89dZbqFmzJqZMmVLFT8EwlQsLCsPo4dtvv0VsbCzi4uJw7do1yGQyTJo0CQDw448/QqVSISsrCzdv3sTixYvh5OSEefPmISQkBD/++CMKCgowb968Kn4KhqlcWFAYRg/ff/895syZAy8vL7i4uGDWrFlYv349BEGATCbDjRs3kJ6eDqlUipCQELi6ulb1kBmmyuEYCsOUQxAEXL16FT169IBIJCrZrtFocOvWLYwaNQo5OTno168fCgoK8Oabb+Kzzz6DRCKpwlEzTNXDMxSGKYdIJIK3tzf27duHu3fvlvwoFAo89dRTcHZ2xqefforU1FQcOnQIGzZswLp160rOZZjHFRYUhtHDmDFjMGPGDFy9ehUAkJeXh+3btwMA9uzZg7Nnz0Kj0cDd3R1SqRRiMf1T8vT0xKVLl6ps3AxTlbCgMIwepk2bhi5duuCll16Cm5sb2rdvj5MnTwIAsrKy8MYbb8DNzQ3PP/88evTogcjISADApEmT8Msvv6B27dqYNm1aVT4Cw1Q6Im6wxTAMw9gDnqEwDMMwdoEFhWEYhrELLCgMwzCMXWBBYRiGYewCCwrDMAxjF1hQGIZhGLvAgsIwDMPYBRYUhmEYxi6woDAMwzB2gQWFYRiGsQssKAzDMIxdYEFhGIZh7AILCsMwDGMXWFAYhmEYu8CCwjAMw9gFFhSGYRjGLrCgMAzDMHaBBYVhGIaxCywoDMMwjF2QVvUAGIZhLEEulyM5ORm5ublQKBRwcXGBp6cnAgMD4erqWtXDe6wRCYIgVPUgGIZhTJGVlYW4uDikpaUBAFQqVck+qZS+G/v5+SE8PBze3t5VMsbHHRYUhmGqPYmJiYiNjYVSqTR5rEwmQ0REBIKDgythZExZOIbCMEy1xhIxAQClUonY2FgkJiY6eGRMeTiGwjBMtSUrK8uomIjFYvTt2xdeXl6oVasWVq1ahcuXL5eIipeXF7y8vCp51I8vLCgMw9gdewXO4+LiTM5Mrly5gqNHj6J///4625VKJQ4fPozIyEirnoGxHBYUhmHshrHA+blz53DgwAGzA+dyubzkOhMnTsTx48fRqlUrPPnkk0hLS8OWLVugVqtx7NgxAIC+cHBaWhrkcjlnf1USLCgMw9gFU7EOrbikpqYiPT3dZOA8OTlZ5/eAgACsWbMGKpUKI0eORGBgIE6cOGFyXMnJyQgLC7PgSaoH8owM5M2dC0lKCsT5+dC4uUEdEACPadPg6uNT1cPTCwsKwzA2Y23gHIBBUcnNzdWZ4Rw7dgwFBQUAgAsXLqB+/fom76NSqZCXl2fWmKoLeTt3oig6GvWTktAQgKzM30B55AhEP/yAa0FBcJo1Cx49e1bdQPXAgsIwjE0YC5wbCpoDMBk4VygUOr9rxUR7rpubm1njK3+d6kzmjBnwjomBRKnUm4KrFRevhASoe/dG5uTJ8Jkzp3IHaQROG2YYxiZMBc6vXLmCzZs3Iz8/v8I+beBcHy4uLnYZn72u42gyZ8yAV0wMZAbEpCxiADKlEl4xMcicMaMyhmcWPENhGMZqtIFza4PmgOHAuaenJ86dO6ez7KUPiUSi81kikUCtVgOgCnoPDw9bHrFSyNu5E97FYmIJTsWicqNTJ9Tr3t1BozMfnqEwDGM1ZQPn2qD5woULS1KErbmOFnPPHz9+PD7++GO4u7tj2LBh+Pjjj/Hkk09afJ2qpCg6GhJjYiKTARs2ABkZgCAAnTqV7JIqlVDMmlUJozQNz1AYhrGasoFza4LmgOHAuaurK/z8/JCamoqFCxfq7Dt48GDJ5/L7yuLn51ftU4blGRmon5Rk+tt9XBywYAEJSxnEABokJUGemVnl2V8sKAzDWE3ZgLe1QfPy1ylLeHg40tPTzc4eK4tMJkOHDh1MHlfV7sV5c+eiofaXjAxg8WLgzTeBZ54Bdu8Ghg8HCgsBrXAWL+eVRSi+ju+SJQ4frzFYUBiGsRpHB869vb0RERFhUUoyUGoQacx2xZ5FmLYgSUnRSQ3GgAFAt26AQgHExwNRUcDy5UavIVOpIElJcdgYzYUFhWEYq9EGzo1hLGgOmA6ca+tU7Ok2bO8iTFsQl89+W7QIuH6dPm/fDpgZAxL/95+dR2Y5LCgMw1hNYGAgDhw4YPSY8ePHo1atWgCAYcOGAQAWLFiAe/fu6VzHGMHBwfDy8sLhw4dpRqFSoWzuV9l+KB06dDA6M3FEEaYtaMovDebklH6+fx8w09xS4+5ux1FZBwsKwzBWow2cWxs0B8wPnHt5eSEyMpJiHp9+iryrV6F47TW4uLjAw8PDrJhHdXQvVgcEQHnkiO6yl4UopVKoAwLsOCrr4LRhhmFsIjw8HDKZzKpzzQ2cl8XV1RVhFy6gd3IyBg0ahN69eyMsLMwsUTLXvVhfIaaxIkxb8Jg6FSJzDnRyApydK34GICq+TlXDMxSGYWzCkYFzg1y/Djz1lEWnVFf3YldfX1wLCoJXQoLxb/jnzwPatODiJTj4+EBz+TKuBwWhUTUwjGRBYZjHHHukzToicG6UGzcAC8+tzu7FTrNmQd27N8S+vro7oqNLP5ffV4xKJoNL2eOqEBYUhnlMsXfabIXAeblrSjUawMnJrMC5Se7cARo1suiU6uxe7NGzJzInT4ZXTAycLJjlFclkyJ48GT7VwHYFYEFhmMcSR6XN6gTOk5ORl5dHs579++Fx8yYCf/3VPstF+fkGv7Eborq7F/u8/TYyN2+Gd2amQbdhLRrQzCS7mrkNs6AwzGNGZaTNurq66i4LJSUBq1ZRMNlW8vPJz8rCGUq1di8uKAB69YLPxIm44ekJxeTJaHD9OgSU64dSnB6dExQEl+joajMz0cKCwjCPEY7qXWKSdu0AFxcSltBQ2x7i+nVAKgXq1bPotGrrXiwIwMiRQEgIMHYs6n31FfDii5BHR5d2bPzvP2jc3alj49Sp1SIArw8WFIZ5jDCnd8nRo0fRv3//Cvu0abORkZGW3zgoCNBoyErEVkHJzgZEIosFxZwiTMB0Iabd3YvnzgUyM4FDh8iza9EiYM8euPr4VLk3l6WwoDDMY4Ije5eYxMeHvonv3QtMmmTbg2RnAyqVxWnD1dK9ODaWHISPHaMZ3PLllL32/PP2u0clwoWNDPOY4MjeJSYRieglGR9PwmILV67QbKdMzxNzqewiTKNcugQMGwasW0fxILUa+PZbYPp0+92jkmFBYZjHBH29SxQKhV16l5hFu3YkBJcuWXe+lkuXAFdXEikL0RZhWioqNhVh6kMuB3r3Bj7+GOjYkbb9+Sct44WH2+ceVQALCsM8JhjrXeJkQfaV1WmzQUFArVrUKMoWLl+m61hJcHAwiYpUSgJnApuLMMsjCMCoUfT3GD++dNvXXwPTplkllNUFFhSGeUyo8rTZwECgqIiWvWwhO9vi+El5goODEdWgAfyvXYNUoylxK9YilUohlUrh7++PqKgo+7oMz5sHpKUBy5aViseBA5QO/frr9rtPFcBBeYZ5TKiM3iVGee45qnC31WAxLw9o08a2awgCvBYsQCQAedeuSPb2Li3CtMC92GL27CFBOXYMqFGjdPvXXwNTpwLih/s7PgsKwzwmVFbvEoM4OQH+/sDFi8Dt20CdOpZfQxBIlBo2NH2sMXbtokyx3Fy4vvEGwso49zqMjAxg6FAKwj/9dOn2U6eAM2eArVsdPwYHw4LCMI8Jldm7xCBBQVRrceQI8Oqrlp9/7x59i2/QwPoxAMBXXwEtW1IspjLE5P59CsLPnAl07qy775tvgIkTK2ccDubhnl8xDGMRVZ42GxQE1KxpfRwlOxt44gnbYihxcVRtf+oUpe06GkEA3n4baNECmDBBd19mJrB7NzB6tOPHUQmwoDDMY0SVp80GBtK3dVsERSazuEpeh6++AiIjKUGgfXvrr2Mu8+cD584BK1ZUzOCKiQHeesuqmprqCC95McxjhkW9SwQBMpUKER062CfTqVUrKkzMzKSlL0uXebS2K9bOUE6fJj8xHx+KZzg6RXffPlrSKh+EB4CbN4E1a4B//3XsGCoRnqEwzGNIcHAwoqKi4O/vX5IiWxapVAqpRAL/S5cQdesWgmNibK9wB+ibuIcH8MwzwMmTlp+fnU21I9bOUObMoWWnjRtJUBzJ5cvA4MHA77/T85ZnyRKgTx/Azj3qqxKeoTDMY4rB3iVl02Z//BH4+29K1V22DBg71vYbBwZSpXh8PPDCC5adm51NMxtrZiiXLpF3Vu/eQOPGQNOmll/DXLRB+OnTgZdeqrhfLidBcUCP+qpEJBhygWMYhiksBJo3p1a0kyaRI+5zz9l2zc8+AxITablpyxbLzu3bl9Jr5XLLl8vefReoWxdITwc6dLCPOOpDECjYLwi0pKVvWW3xYloO27zZMWOoIniGwjCMYZydgc8/BxYuBL78kpZwjh2zLcU1KIhch8+epZeuJXGMq1fp3pbePycHWL8eSEigosjFiy073xIWLQJSUmgGpu/ZVCoqbly71nFjqCI4hsIwjHEGDgSUSqB2bWq7+9FHtl0vMBBITaUg9cWLlp2blUWzDEtZsAAYMoRmWJ07W3cNc9i/n7LI/vyT0pv1sWEDFTa2a+eYMVQhLCgMwxhHLCZrkI8+ApYupUrvPXusv563N31Lb93aMqNIQaBYjpnOyCXcuwf88AMwZQrw66+Oqz25coVmcGvWUBaZPsqaQD6C8JIXwzCmeeUVylTasoV6w0dFUWGgNd/0RSJa9mrQgJaFRo4077xbt2hWY2mG19KlQM+egERCY+7Z0/Ixm+LBA8rYmjIF6NIF8oyM0va9+fnQuLlR+97wcLiq1UCPHvYfQzWABYVhGPP4+mt6GV+8SMtgb78NbNpkXS1HYCAF/PftM/+c7GzA3d2yDK8HDyj+s3cv8NtvFNS3k+tyCYIAjBkDNG2KPH9/FIWGon5SEhoCkJXpX688cgSiFStwzd8fTrt2wcMRwlbF8JIXwzDm0bo18OKLVN39xReUhvvTT9ZdKzCQ7E9ycoAbN8w7JzubGmtZMkNZuRJo25Yy0xy13LV4MZCcjExvb9Tu0wdeCQmQqlQ6YgKQuEjVanilpKB2797InDHD/mOpYlhQGIYxny++oCyme/eoYG/mTODCBcuvExREy09t25JRpDlkZ5NjsbkzFJUKmDsXmDGDquPv3wfCwiwfqzEOHgQ+/xyZHTrAa9EiyJRKky9VMQCZUgmvmJhHTlRYUBiGMR9fX6ow/+wz+tYfHU2B6KIiy67TrBllbAUHm+/rlZ1NCQLmzlDWr6e4zwsv0Oxk6FD79hu5ehUYNAh5U6bAe8UKOBmysZHJKLMrI4OWxzp1AgA4FYvKjb/+st+YqhgWFIZhLOOjj6iGIi2NigXr1wdmz7bsGlIpEBAAeHpaJigajXkzFEEgm5UZM2imsnatfZe7FAoKwr//Poo2boTElCdaXBwJ2vXrOpulSiUUs2bZb1xVDAsKwzCWUa8eVc1//DEF5H/+mTK/TDTvqkBQEL3sk5PpBW2K7GyaCZkjKDt3kmh17Qr83//RTKVZM8vGZwhBICFt3Bjy/v1RPymJXqQZGZTldeoUcPcupVc7O1MNz8KFJJxlul8C9AJukJQEeWamfcZWxbCgMAxjOe+/Tz5UCQlk9vjTT8Cbb1I3RXMJDCRb9+bNyYrFFNnZFAcxZ8lLOzsRiewfjF+6FDhxAvj5Z+TNnQsd76oBA4Bu3WhpsGVLSq82gQAgb+5c+42vCmFBYRjGclxdgVmzyPxQEIDu3YFevahRlLn2gIGBFCwPDzdv2Ss7G/jvP9MzlMOHKXusXz8gP59mKwMHmjcmUxw+DHz6KVXCu7pCkpKim821aBEta925A2zfTs9oAplKBUlKin3GV8WwoDAMYx0jR9JL/u+/6fevv6YZxy+/mHd+y5bk59W2remKebUayM2lGUpxz3uDzJlDlegSCdXJdOpkW4dHLdeuUWOu1auBJk0AAOL8fN1jcnJKP9+/T90pzUD833+2j68awILCMIx1SKXkWzV9OgXLa9SgVOIPPiBHX1O4upKnlacnpQ5rNIaPvXGDhKROHeOZWqdO0axn+HD63V7LXQoFFUVOmEBLWsVo3NxsvzYAjbu7Xa5T1bCgMAxjPb16kTD89hv93qIFBeuHDKFgtCkCAyl92N0dOH/e8HHZ2TTLMDXTmDOHEgacnWlGkZQEvPaa+c+jD0EAxo0j8Zs+XWeXOiAASqkZhiNOTqUOyWU/A1BKpVAHBNg2xmoCCwrDMNYjEtFS1yeflGZqvfcezSY+/9z0+UFBlOVlKo6SnU3dHo0F5NPTKaNr9Gj6/fff7WO1snw5WfavXFnBZsZj6lSYZTxz/jz9fRo2pCZfCkVJF0dR8XUeBVhQGIaxjQ4dKB6ydCn9LhbTy3f5ctPB9sBAEpSwMONxFK3tirEZyty55Knl7k6zCnssd8XHU/LBli0V4yFqNVz37EFOgwbQAJTZtXdv6f7o6NL7+/qSGJX9uXwZGgDXg4Lgasid+CGDBYVhGNuZM4d+7t6l3xs0AFasoGK+e/cMn6fN9Grf3vQMxcXF8Azl+nXgjz+AiRPp91OnKMMrPNy65wFoKW7AABJHPz/dffHxQGgosHo1nGbMgFoms+oWKpkMLtHR1o+xmsGCwjCM7Tz3HPD667T8peX11ymAPX684fM8PUko3N2Bmzcpk0sfWtsVQzMUbQMtreDYarVSWEhpx2PH6lrNZ2XRdQcOpCLGw4fh4e6OLB8fFFkoKkUyGbInT0a97t2tG2M1hAWFYRj7MHs2zUquXSvdNm8eFT/+/rvh8wIDgdOnyXPL0CwlO5v+V5+g3L0L/PgjZZcBVH3/++/04reW994DvLyADz+k3wsLaQbWqhXFPs6dIw+zJUuAmTPhs2ULsidPhlImg5FcNQCABqVi4jNnjvVjrIawoDAMYx8aNgTeeUfX1+uJJ+jl/v77gCF7Ee2yV1iYcUFRKvUveWkbaBUHubF3L43F39+651ixguI5q1bR79u3k+/YP/9QcP6LLyie8/nnNDM6dAh47jn4zJmDu1u3IiskBCqptEL2l7J4W1ZICO5t3WpUTOQZGcgYOxZXOnXCtdatcaVTJ2SMHVv9LVoEhmEYe3HnjiDUqycIKSm627/5RhDCwwVBpap4zh9/CEKvXoKwf78gtG2r/7qenoLQoYMg/P237vb792nfv/+WbhsyRBAWLrRu/PHxNP7z5wUhNVUQunUThGefFYTdu0uP0WgEYdIkQWjRQhCys/VepiAjQ7g0dqxwuVMn4WpQkHDZz0+4NGiQUJCRYfT2uTt2CFdDQgSlVCoUSaWCQOkFggAIRVKpoJRKhashIULujh3WPZ+DYUFhGMa+zJsnCK+/rrtNrRaEl14ShM8/r3j8hQuC4OMjCHK5IDzxBP1vWYqKBEEmE4RWrQTh5EndfYsX694rP18QnnxSEHJzLR93VpYgeHuTwH3wgSDUrUvPUlhYeoxSKQgjRghCu3aCcOuW+dceNkwQfv7Z6CEZ06cLRTKZoC4jIvp+1IBQJJMJGdOnW/6MDoaXvBiGsS9jx1KWVdk0YLGYLFkWLQKOH9c9vkkT6hdfWAg8/zzFXMqSm0tLXTdu6MZQlEpKFZ45s3Tb5s2U2eXhYdmYi4qoZiU0lDLFbt0C/v0XmDyZChEBGl9kJMWI9uyhqn1zadbMaCOyzBkz4BUT89A36GJBYRjGvri4UAOuadN0jSK9vSneMXgwpfRqEYupjuXUKf1xlOxsSkO+eVNXUNavB3x8gHbtSrdZW3sycCAVH2ZnU83Jzz9Tnxctcnlpxf327RRDsQQjgpK3cye8Y2IeiQZdLCgMw9ifwYPpJbxli+72vn2Bzp1L60W0aAsc9VXMZ2dTerFMRn5hAPl+zZmjOzvJyiIb/NdfN3+cOTkkYtu3A19+SZ5ioaG6x9y5A7zyCgX616/XsU0xm2bNgIsX9e4qio5+ZBp0saAwDGN/JBKqSZk5k9J4y7JgAdnAb9hQuq1spld5o8jsbLJyKTs72bmTlqIiIkq3/f47dVHUio4xiooopdnfn+579ChV2ZevW8nJIQFs145Sk83x7dKHnx91uCxngCnPyHikGnSxoDAM4xi6dqVlrp9/1t1esya9/MePp77sQKmnl6cnULcu2dpryc6mc7Qpw4JALsfaBlpazF3u2r2blth27qTlufXrgTZtKh6XmUm2Mv36kfjY0o++Zk2gdm3dGh3gkWvQxYLCMIxj0BpHRkfT8ldZQkJo2evNN+lbd0AALQkVFlaMo2htV7QzlMOHKUDft2/pMadOkcVLx46Gx5OeDrzxBgnZV1/Rvd59V78b8blzdK0JE8j4UmSWBaRx9MRRHrUGXSwoDMM4juBg+pa/YEHFfdOnk5jMm0eC0aQJkJJCcZSyGWLZ2bTUpJ2hlG2gpWXNGrJe0TeLKCigivfQUKrGT0mhLK2nniKxKE9iIvDii1S4+N57tj1/WcrHUW7fhvjWLd1jHvIGXSwoDMM4ls8/B+bPp1lFWSQSWqb69lvq0a5d9tI3QwFIAJKTaTby5pul+9VqWkIrv9wlCLTd35+W1k6fpmWy336javpffqkoQAcPknfX8uW697AFtZoyyO7fJ6PJV18FGjUCfHygKSy0yy2qS4MuKyNMDMMwZuLnBwwaRJYl5WcqzzxDyzxDhlCXxeRkICoK8vv3kTdyJCTp6RDfuQPN7t1Qe3vD4/PP4aptoKVl3z5KK27evHRbUhLNLh48oBhJWBhtP36cZkaHD1N/lbLs2EFtjdetA156ybpnvXePhOvUqdKflBRKQfbwoGD7hx+WeIKp334bysxM3WUvfTg5lS67aRt0FYtRtWrQVdWVlQzDPAbk5lLleXq6/v3DhgnCq68Kue3bk/WIRKLfekQiEa62aaNrPTJsmCAsWECf8/IE4Z13yI5lxQpdq5ecHEFo1EgQtmypeP81a+icY8fMex61WhDS0gRh0yZB+N//BOGNN6ja39WV7GPeeUcQliwRhLg4Qbh3j845d04Q/Pzo8+nTgjBihFDg4SEotc+ZkSEIL79c+syzZgnCr7+W7ivPM88IAiAopVKTli6VhUgQBMG07DAMw9jIp5/S0o+2XXBZ/vsPmW3bwjstDRKVyuhavAaAWiZD1uTJ8PnkE8okO3sW2LSJ7jFkCDXFql279KSiIqBLF4qNlO8/snQp1aDs3k2V+uUpKADOnKHZhnb2ceYMpTK3aqX706SJbmynLIWFgJsbBfvPnqXkgNGjca17d3glJFgVf9AAyAoJQaPy7gNVBAsKwzCVQ0EBBaZ37ABat9bZpbUeMVgtrocimQzZffrAJyODssjq16d6DX3LP++9R2nAW7eWxk206cc//UStg319gStXdJerTp2igsnnntMVjpYtdQXLGAoFJQ3Mn0+1KJ99Rhluxct2eTt3onbv3pBZ8Oxl/wb3tm6tPj1VqnaCxDDMY8XSpYLwyis6m3J37BCKZDKjhoiGfgqlUiHP15eWnjQa/fdcuVIQmjYlJ2QtcrkgDB1KZpAjRwpCx46CUKuWIDRoQA7D06cLwu+/k2uyUmnds+bm0rKVh4cg9OwpCHv30rW3b69waMb06UKhhX+DwmpoEMkzFIZhKg+lkmYQS5aQnQmAa6Ghhpd8ZDLK1AoOJt+uzp0pE6sYDYCs4GA0Km8oqeX4caB7d0oIuHOHZhzJyTRTcHamjKvQ0NKZh6EWw5aQkkKzkU2byEzy/fdLe7NMnEiJCJMnVzgtc8YMeMfEQGLCIFIDah1cHRt0cZYXwzCVh0xG8Yrp04GXX4b88uVS6xFDxMVRdlhZq5ZixAAaJCdDnpkJ1wYNqCBRu1SVkEA2LjVr0su9VSuq3r9zh7oxbttmdp2HSQSBls1iYuje48ZRzUn5DpPNmlH8RQ8+c+bgRqdOUMyahQZJSRAAnewvbcOunKAguERHw6e6LHOVgQWFYZjKpW9fsp1ftw55cXFoCJCP1eLFVPvxzDMUIB8+nALZCxfSeeV8rLQIAPJefRW+6elA48YkHM8/Tym8771HswWRiOIsfftSF8m1a6mY0lYUCppBxcRQbGbyZIrTGDKQbNaMLPYNUK97d6B7d8gzM5E3dy4kKSkQ//cfNO7uUAcEwGPqVDTy8bF93A6CBYVhmMpFJAK++QaIioKkUaPSb+FaHyuFggobo6KowNAEMpUKEjc3mnloRWLiRCoenDeP7nf3Li1vNWlCQXhrTR613LgBLFtGGWKtW9MM6uWXTVu0NG1qtC+KFlcfH/guWWLbGKsArpRnGKby6dQJCAiAOC+vdJsVPlZaxIWFpWLyyy/Arl2UniyRUIOuF18kA8iVK20Tk7NngXfeoZnGtWtUVLlrF6Ukm+P31agR9XUp7232iMCCwjBM1fDVV9AoFKW/W+ljBZSxHjlxgizg//yT6kQuXyYvsTfeoFmENY7BgkDeXz16UAV9w4ZUT7NiBaUTW4JEQrOktDTLx/EQwEteDMNUDS1aQO3tDWVWFmQ2XKbEekTrQPz99xRDSU2lfjMs/QsAACAASURBVClTplRs6GUOhYUUa4mJoT4mkydT/MPW2IvWJLJVK9uuUw1hQWEYpsrwmDsXImOW84BRHysAEAHwmDyZYjCDB5OonDwJ9OxJhYtm9BTR4eZNEqUlS+il/+23lOJsDwt7wOw4ysMIL3kxDFNluLZvjxw/Pxgthjt/ngL1DRsCsbH0+ZlnAFBNxnVfX7h+/nlpL/tDhyi4v3SpZWKSmkpdG5s2par6//s/yjaLiLCfmABG+8s/7PAMhWGYKkUWHQ1l06ZwKuu4W9Zvy9fX4LkqmQwuTZpQIH7AAAq6f/ghpfJ26WL65oIA7N9Py1oJCdRwKzWVOkc6imbNKNPsEYRnKAzDVBkqjQozXf7GgbZ+KJJZFkkpksmQPWIE6iUm0qxEqaQMrJAQoyJEJxeRCAUFkUljr140K5k927FiAlRstPUIwYLCMEyV8ED5AH3/6Ivs/GyE7YpDduPGUEql0Jg4T4NiMRk3Dj6xsRTr+Pdf4OhR6nMSEgK0bUu9TdLTdU++dYtsWHx8yLBxzhw69623gBo1HPSk5fDwoBjQ7duVc79KhAWFYZhK557iHrr91g2uMldsG7QNru514dOtG2551MPJ5k9DKZWWWI1o0W7LCgnBvc2b4XP6NHllXbpEvesPHqRGWrNn0wygUSMSllGjKO333Xep2Vd6OvD33xSP6dbNulRiWxCJHtlZCsdQGIapVHIKctBtTTd0eLoDFnZfCLFIDKhUQGwsbtV2xcEBvXDogRQtEhLgceMGXBQKKFxckOfhgTOtW8O7dWuEHzpENR0aDbURPnyY+qJoqV2bhKVNG+CDDyi20qoVCUloaJU9ewnawHzbtlU9ErvCgsIwTKWRfjsdEWsiENUqCh93/BgibfbUzz/jWGAr7GraBGK1BHAR40iHDnqvkZqainRnZ0Q8+yyCDxyg+EnduqUHFBVR29+YGMoI++ADSiH+/ntyHu7TB/joI1r2qioe0RkKL3kxDFMpnMo5hY6rOuKDFz7AJ50+KRWTggIkrl+Pv/2fhVgsM2sJSimVIrZ2bSTGxJSKye3bVHfi6wusXk2xkpQUCtR7e1NK8YULFHRv04a2X77swCc2wiNai8KCwjCMwzl0+RBe+fUVzO86H++GvKuzL2vePMSGh0MQLKv1UEokiD10CNlHj5JdfJMmVLOya1epVUp5capbF/j8c3qZ16tHxo6jR1e+sDyitSjcYIthGIey7fw2jNo2Cmv7rkWXxuVqQ3JysH7qVKT6+ek9VywWo2/fvvDy8kKtWrWwatUqXC778hcE+KenI/KZZ0hUGjSwbHA3b5Ij8fLlVMfy4YfA009b+IRWcPcuFWrm59u3aLKK4RkKwzAOY1XyKozeMRq7Bu+qKCYA5J9+irQmTYxe48qVK9i8eTPy8/Mr7hSJkPbss5DPnGm5mADUAOurr2i2UKsW1aWMHQtcvWr5tSyhVi3A1ZXclR8hWFAYhnEIc+PnYvaB2dg/fD9CvEMqHnDuHJLT0iBIJZg4cSJeeOEFjBkzBtOnT0ffvn0hkUig0Whw7NgxXL16FQYXU0QiJCcn2zbYp56impTUVMDNjTLCxo0ji3pH8QgG5llQGIaxK4IgYGrsVKxMXom4kXHwf8pf/4EzZiC3Y0eo1VTKGBAQgDVr1mDhwoXw9PREoJn9UFQqFfLK9lWxhXr1qKbl/HmaQbRsSZX0jhCWRzAwz4LCMIzdUGlUGLltJOKuxuHwiMNo6N5Q/4GHDgGnT+NBsckjABw7dgwFBQVQKBS4cOEC6tevb/Z9FWX7qtiDevWoq2RqKlXQt2xJ7YSzsux3j0cwMM+CwjCMXdBaqVzPv449w/ag7hN19R8oCFQb8sUXuKG6VbK5oKCg5LNSqYSTk5PZ93a5fZs6PdobDw9g7lzg3DmyzW/RApgwAcjOtv3aLCgMwzAVuau4i65rupZaqTi5Gj74jz8AtRoYOBBJ+UkQiW3LcpIKAjz++Yeys5o1A4YOpXbCR49SYaM98PSkvihnzwIyGTXwmjjRtqA6x1AYhmF0ySnIQedVnRFYPxBr+qyBk8TIzKKwkFJzv/0Wqbcv4FDhIbJeMYJEIoFEIqnwuQSZDIHLl9MMZdMmatN79ixla9WpQ0WM775L9iv//ktiZi3161Oa8dmzZP0SEAC8/75VwiKvXx/x9eph86ZN+P3337F582bEx8dD/hD3m+c6FIZhrMaglYohFiygosMdO/D+7veh1qjhflyNqRO/wLbt25GRkQEA6NSpE+rUqYM///wTEydORK1atcpdZgHu3bsHAPD390dkZKT++z14ACQnA8ePl/7k5JDIhISQr1doKM1urKkHuX6dgvi//AIMHw5Mn06iY4SsrCzExcUhLS0NUCigKmOCKS3+7Ofnh/DwcHiX9Sd7CGBBYRjGKpJzktHz9574uMPHFarf9XL3Li3z7N+P/5o0QqO59fHhPhV6XPPAn0NGQhBJTF+jHDKZDFFRUfDy8jL/pNu3gcREEpeEBODYMYrrlBWYkBBdfzBTZGeTsPz6KzBiBDBtmt6+KomJiYiNjYVSqTTr2SIiIhAcHGz+OKoYFhSGYSzm0OVD6PdHPyzpsQT9A/qbd9L06cDt2zj12XhMXtgD3/xyHbfdZZD+vApusqb4e8cOqCyYJdjthSsIlBasncEkJJDgeHjoikxQEPDEE8avlZ1N9Sxr1lA/lqlTS4TFEjHR8rCJCgsKwzAWYdRKxRCXL0No3RpfLI5E/rrVmLrnPpb3aoRR3x9DfbcG0Oz+C4e+jMbBLt0AU55eGg1kTk6I6NrVcS9atZpqUbQCc/w4GU02a1YqMKGhwHPPAVI9pu1ZWSQsv/0GjBqFrOHDsXrbNovERItVs7AqggWFYRizWZm0Eh/u+xDbBm7TX/1ugKzeXbD7TgKevymG5F4+xg6siSNf34RULAWuXoU8MAAfvNUIM9/7C//E/0PxhaIiqMqYO0olEkAkgl9eHjrUrw+vmTMd8YiGUSiAU6dKBeb4cZrZBAXpLpX5+pbGY65dA+bMwfp795DapIneOI1JvzKYiBNVI1hQGIYxi7nxc7EkYQl2D91tuPq9HHnyPCxYNhzT//c3NFIpVofVxJ5Boejs1wUftP8AKCrC/bC2mFvvAoasOQW/OmQSKZfLkTx9OvJycqDo1QsuCQnwaNYMgVFRcM3NpZd3UhJ1ZaxK7t4FTpzQDfoXFuoIjPz557Hg11+hMpBdJhaLERISguzsbPTv3x+bNm2qIChSqRTvv/8+XF2NpGNXA7jBFsMwRhEEAdP+bxr2XtiLJS2W4OyhszipOAkXF5cSi5TyLzpBELAyeSW+3DYViQseQCkRY+GHL2LE6GWIXtEGq/v9BgBQT/0ACUUZqD/72xIxAQBXV1eEZWcDW7cCGzYAV65Qq19XV6BxY7JDmTyZ9lUltWoBL79MP1qyskpnMfPnI1kQgPbtMXHKFBw/fhytWrXCk08+ibS0NGzZsgVqtRrHjh0DAMN+ZQCSk5MRFhbm6CeyCRYUhmEMotKoMG79OEiuSNBH2QfJR5OhUqlK9p87dw4HDhzQSXM9f/M8Ru8YjWans5H0swKaQgV2//0dPu0wFt8e+RZvPPsGVdFv3Ih7G37F0uhQrAsZU/Hmcjng5ETLRCEh1MdEy/TpVAPyf/8HvPJKJfwlLMDbm3569QIA5G7aBNW//wIo9StTqVQYOXIkAgMDceLECZOXtKtfmQNhQWEYRi8PlA8w7sdxaHijISSCBGpUXLLRiktqairS0tKg8lVhRcYibD7zHPz+voL/pBoIixZhaMdx0AgafH/ie6ztuxa4cAHKMW9j4FAxfhn0i/76lfv3ARcX+hwcTEtcajUVFNaoASxcSDOV06fJFqWaoigsLPms9SsDUPV+ZQ6AK+UZhqnAXcVdjFw2Eo1uNIJEMK8+RKVSQbioxrojbXD73Ensj2yLBs8Go+GwcQCA2PRY1HKphZBaAVD364vol6UYM/oH1K9p4KV6/z4JBwDUrk3pt6mppftfe42yrubPt+VRHY6LVhRho19ZmetUV1hQGIbRIacgB71+6IVn7z0LsaD/FSEWi9G/f39MnDgRs2bNwjPFrsEiSLA3OBT5C5ai3450iOfFlGQ2LU1YirHBYyF67z0k1lEga1BP9Gnex/BAHjwoFRSAZikJCbrHLFxIHluObohlA56eniUV8NYilUrh4eFhpxE5DhYUhmFKSL+djrCfw/Ci+EWINMbrQQx1UhSJZRAOXwZeeAFo1w4AkHk3E/FX4zH0RBHyD+/BiO6FWNh9kfHBPHhAQXgtISFUcFiWsgH6aoo5fV1M+pWZeZ2qhmMoDMMAKLVS+ajtR7hz4A5UUGHixIlWZSalKZWQz5oFrRysOLECM1y7QTbzE7wyUoRlkRvh7uxufECFhbq+WCEhwPr1FY+rzgF6UMaan5+f0WPGjx9f4lc2bNgwALp+ZX5+ftU+ZRhgQWEYBrpWKl53vXAAB0r2WZWZJJEg+d49hAEoVBXijyM/4OzKJzB/iC/avfIiOvl0Mj2owkLdGUpQEHDmDFBURNlfWmrUILv6ahygDw8Px9KlS3Uq5Q8ePFjyeeHChQbPlclk6NChg0PHZy94yYthHnO2pm5F3z/64ve+v6N/QH/k5ubqpAZb00lRJRKVpLluOrsRK7eJkB7qh9X+hfjsxc/MG1hhIVCzZunvNWvSEldxCq4Or75arQP03t7eiIiIgEwms+g8rZfXw2C7ArCgMMxjzcqklRizcwx2Dd5V4stVPj3V2swk7XVufvkxnr3/BLq0OoU1fdbAWWrmDEKpBNzLLYuFhFQMzGvRBuivXDHv+pVMcHAwiYpUCmg0Jo9/2IwhARYUhnlsmRs/F9EHo3Fg+AEdXy57pae6uLggbftqDNp5BeOi6mFSpxlo6dnSvJMFgQSl7AwFMC4ojRtT3/cpU2wbuAMJDg5GVJMm8M/Lg1QqrZD9JVWpIBWL4e/vj6ioqIdKTACOoTDMY4fWSmVX2i7EjYxDQ/eGOvtr1KoBjUhjMGVYS9lMJG1mkrrYr0oqlcLD1RV1hgxDzDstcaOeKya1m2T+IFUqSjd2c9PdHhwMLF9u+Lxp06g9b2wsEBFh/v0qEa9VqxA5ZAjkffogOTkZeXl5UCgUcHFxgceZMwjMy4PrJ59U9TCtggWFYR4jVBoV3tr2Fs7fOo9DUYfIAqUYjaDB8sTl+CrxK4zESJPXMpqZJAh4fv48rHheiWWeV3Cy10lIxBY00FIoqCK+fGZTq1bUh/3+ff29SbQV9O+9Vz0D9BcuUMX/li1wdXGp6M3VsiWlW8fEUO/6hwx2G2aYx4QHygeI3BgJpUaJjf03wtWp9GX9b96/GL1jNARBwIrXViBlfwpSy1alW4i/IKD99t/Qqk8u5vf8DsMDh1t2gRs3qC3vZ58BH3yguy84mLK62rc3fP7rr9P+GTMsH7wjef99EskvvjB8TLt2wOzZQLdulTYse8ExFIZ5DLiruIuua7qiplNNbB24tURMHigf4KO9H+HF1S9iWMthiBsZh+c9nofMRwYlLG8GBQAysRjhf/6Jrj1u4XmvQLzZ6k3LL2JohgIYj6NoWbCg+gXoCwqoRfDo0caPGzKEGnM9hLCgMMwjzvX86+i0qhMC6wdiTZ81cJJQlta+jH1o+X1LXLh9AafGnMKY4DFQa9SYsWcGJsRPgH+ov+VprhIJIvbvx5ExHXHRKR+bBmzSb/xoCoUCEIv1C4o+C5byaAP01amCfs0aoFMnmnkZY8AAYPt2WtZ7yGBBYZhHmPTb6QhfGY7+z/XHwm4LIRaJcfP+TQzfMhxRW6IQExGDDf03wMvNCxl3MtBhZQecyTuDpNFJGNp9qEW1EzKpFBGnTyPg5c6IuvMzRgWNQj3XetYNXKGgoLy+OIk+CxZ9TJtG8YrYWOvGYE8EAVi8mIovTeHpCbRtS6LykMGCwjCPKMk5yei4qiOmtp+Kjzt+DAD45dQvCFgagDoudZAyNgWvPfsaAGDdv+sQ+mMoIgMisWPQjhIhCA4ORlRUFPz9/SESi6AR6dZPSJVKSNVq+D/xBKLu3EFwYSGi/M5ApVHh6y5fWz94bS2MvhnKc89Ra91iWxKDlA3Ql7GQrxIOHqTakxdfNO/4wYOB33937JgcAGd5McwjyMHMg+i/oT+W9lyKfs/1Q9rtNIzZMQa3HtzCzsE7EexF9Q3yIjkm/DUBh64cwu4hu9HGq02Fa3l5eSEyMhLjtoxDw/sN4V/Dn9JcT56Eh7MzAtu0gev77wMiEbb9Ngt7Dk/GkOeH4EmXJ61/AGOCIpUCgYHUevell4xf59VXgRUrqIK+KgP02tmJuct/vXsDEyYAt28Ddeo4dmx2hAWFYR4S5HI5kpOTkZubW1K3oK8F79bUrXh7+9tY23ctOjzTAV8e/hIx/8RgZvhMTGw3EVIx/bM/lXMKAzcNRKh3KE6+cxJuzm6Gbg0AiMuJw4pXV6Btw7bkqfX++5QGe/06cOUK7iz6Bu/ET4dEJMGEdhNse1iFgpaJ9C15AaVxFFOCAtAsJSSEvvWbil84gmvXgH37gJUrzT/H3R3o2hXYuBF45x3Hjc3OsKAwTDUnKysLcXFxSEtLAwCjLXhj82Lx4b4PsWvILijVSrRZ0QaN3Bsh8Z1E+NTyAUCFjUsSliD6YDTmd52PoS2HmhzDf4X/If12OoIaBNGG6dOBDz+kWokBAyD07Yszv36LjlM6Iis/C4H1bbRaVyhoiciQw25ICLBli3nX8vUtDdBv3GjbuKxh+XJg6NCKRZqmGDyYstVYUBiGsQeJiYmIjY3VcaktS9kWvKkXUnHE6Qi2D92On5N+xpbULZjfdT4GBAwoybS6df8WRm0bhWv/XcORkUfQtG5Ts8Zx9NpRtG7QmjLE9u4Fzp+nF/qYMUCrVlg5Mgj9Xt0McVY2xr401vYHN0dQPvrI/OtVVQV9YSHwww/AgQOWn9u9OzByJDUPa9TI7kNzBByUZ5hqiikxqYAGaK9sjxm/zoBKo0LK2BREPh9ZIiaHLh9C0PIgNKndBEdGmS8mABB/JR5hjcLoJT91KvDVV5QGe+wYLn4xBdMSvsTtvj3QdkcS+j3Xz5rH1UWhoP7xhpa8/PyAu3epANIctBb3lR2g37iRqt/9/S0/19kZ6NNHfw+YagoLCsNUQ7KysoyKia+vL8aNG4cPP/wQb775Jp58sjgArgY6qTphdpvZqF2jNgCyW5l9YDYiN0Zi+avLMa/rvJJaFHM5cu0Iwp4Oo8wjJyegaVNg+nSo/liHobGjMbvzbKztWAdvnQCcVXYw39AKiqEZilgMtGljuh6lLD17As8+S7YmlYW5qcKGeMiKHFlQGKYaEhcXZ1BMatSogQEDBmD//v34+uuvcf36dfTrVzor0Kg1OHz4MADg6r2reGn1S4i7EoeT75xE96bdLR6LSqPCsWvH8MJTQbTMNGsW0L8/8N13+PLmn3jS+UlEBUZh3u0dkLQJAdats+6hy3L/PgmKMedjc+tRyrJwITBvXuVU0CcmUsJCz57WX6NjRyAvDzh71n7jciAcQ2GYaoZcLkdaWprB9rvNmzfHjRs3cLb4JXPgwAFMnToVdevWxa1btwAAaWlp2Ji8EeP2jMOkdpMwLWwaxCLT3x/1ZZKpa6jRuGZj1P3pd0rX/eEHoFs3JHRogiVrJ+LkOyexIWUD2jVshyemjCPRGT7c/BRZffz3HwX8jV0jJARYtcqy61ZmgH7JEuDdd8lCxlokEmDgQGDtWvI1q+awoDBMNSM5Obnks772u/Xq1UNubm7JMUqlEnfu3IGHh0eJoBSpi7Dq71XYOmQr2jVsZ/KexjLJIAZ6CW9gfdoZhD/3HLz37sX9X37CsFUvYFG3RfB298bSxKWI7hwNNOkKTJwIxMcD4eHW/xHy83Xb/OojOBgYN47Siy0Rr8oI0N+8SUkLFy/afq3Bg8mO5dNPbRPpSoCXvBimmlG2Ba++9rtOTk4VuioqFAqdTopiQYxhTYaZJSaJiYlYvXo1UlNToVKpdMUEADSASBAjtXFjrJZIkPjZZ5h+6H9o49UGkc9HIiErAbfu30LXJl0ptvHeexQAt4WCAtOC8vTTlCSQlWXZtSsjQP/TT0CvXsBTT9l+rdatabZ27Jjt13IwLCgMU80oKxb62u8WFRXBuVyfD2dnZxQVFels0yhNt5m1KJNMJIJSJsNfCcdx/vR5LO6+GACwNHEpxgSPKe13Mnw4sGcPpbtaS0GB6V4mIpF5zsP6cGSAXq0Gli2zLRhfFpHoobFiYUFhmGqGqRa8eXl58PT0LPldJpOhTp06yMvL0zku7b80HLl6BEXqovKXAGA6k0wsFqN///6YOHEiZs2ahWeeeQYABf07qDrgwZ0HuHX/Fv489ydGBI4oPdHdnQr5li0z53H1I5eb1xzLWkEBHBeg37kTaNCAstDsxaBBlD5cfvZYzWBBYZhqhqenZ4Ve42VJTU2Fh4cHmjdvDolEgk6dOiE3N7ckfgIAIokIcpkc43aNQ91v6iLi1wh8cegLxF+JLxEYY5lkWq5cuYLNmzcjPz9fZ7s2k2xV8iq89uxrFV2Fx48HfvwRePDAwqcv5v59WpoyhTlW9obw9SW/LHtb3NuaKqyPpk2BZ54hC5dqDAflGaaaERgYiANGKqvv37+PP/74Az169EDv3r2RlZWFjeUyliQiCT6J/ARzXOfgzoM7OHzlMA5kHsCE3RNw4dYFhNcPR7trFF8xlE2mVqtxrHjdXl9j14tpF7EuZx1+6PNDxUE2a0Yv+3XrgBEjKu43hbmCok0dtjQwr2XaNCAgAPj7b/LOspXUVGo93M8OxZ3lGTKElr0qs9LfQlhQGKaa4erqCj8/PyxcuFBn+8GDB0s+Z2RkYMmSJQav4efnV2IYWbtGbbz+7Ot4/dnXAVD3xo27N+La1WsQgV7C+rLJTpw4YXScGkGD5qrmhgP/EyYAM2cCUVGWv+wfPDBPUDw9ySMrPZ2q5y3FxaU0QH/mjO096JcuBd5+2zG97AcMoNbA5v5tqgBe8mKYakh4eLjF3RK1yGQydOjQweD+Wi61UEdTByKh9CWvL5vMFIJaQMiTIYY7MkZE0EwjLs7iZ4BCYdh2pTy2xFEACtA3b257gD4/n+xoTLX4tZYGDWjWt2OHY65vB1hQGKYa4u3tbVG3RC0ymQwRERHw8vIyelz5tGN92WTm0KBGA8M7bUkhVigM266Ux5Y4ipYFC2wP0P/6K/Dyy0DDhraNxRjVPNuLBYVhqinBwcGoUycCKrUEGphOAdaKSXBwsMljTWWSmUvNJ2oaP2D4cHIntvRFXVhovqBYY8FSHm2AftIk687XtvgdN862cZiiTx8KzN+549j7WAkLCsNUUxQK4JMN5/CH01o4ezpDKpXqyf6SQhCk8Pf3R1RUlFliApjOJNMikUggKbYOKftZ+7uHh4fxC7i5AW++aXkKcVGR+f1D2rSh3vFqtWX3KM+0acCpUxSgt5QDB2hG1qmTbWMwxZNPAq+8Amza5Nj7WAkH5RmmGpJfmI/O346DIjQBf7y1Dq3qtyrx2crLyyvx2apRwwMjRwbi/HlXi/o3mcok0zJ+/HjUqlULADBs2DAAwIIFC3Dv3j2IRCIEBprRSGv8eOCFF4D//c/8YLIlglK7NlC/PnDuHFmqWIuLS2kPeksD9Ja2+LWFwYPpfm+95fh7WYhI0JcPyDBMlXEi+wQG/DEIWUc64p9ZCxEUYHzp5403gNdfB0aNsuw+69evR2pqqtXj9Pf3R2RkpHkH9+wJ9O1LDaPMwd0d+OADEiFzGDyYvrlbk6JcnjfeANq2pY6U5nDlChAUBFy+DNQ0sQRoDxQKwMuLRM/b2/H3swBe8mKYaoIgCJj/z3x0/607ml77FG95/GhSTAASkp9+svx+tmSSSWVSo5lkFZgwgYLz5n5/Valoecdc7BFH0bJgAWV8mRv3Wb4cGDascsQEoJlU797VsvEWCwrDVANuyG/g1bWvYn3Keqx9+SgSVw3ErFnmndujB5CRQSs+lmBtJpkgFtA1oqvJTDIdXnmFvlkX92kxiTWCYmumlxZLAvQKBTkCjLVD22NLGDy4WjbeYkFhGDuSkSHH2LEZ6NTpClq3voZOna5g7NgMZGbKDZ6zL2MfgpYHoYVHCxwecRiLP2uMadOAevUMnqKDVErJVD//bPl4g4ODLRIVJZQI6xxmdvC/BEtTiNVqywQlKAj491+KvdgDcwP0GzbQvZs1s899zaVzZyA7myrzqxEcQ2EYO7BzZx6io4uQlFQfgACVqvQFLZUqAYgQFJSDWbOc0LMnZUYp1UrMOjALq5JXYXWv1XilySs4eJDEITXVeLPC8ly4QM39rl4lp3NLuXz1Mv63+n94Wv00ZBIZBHXpa0GbDSauK0ZKjRSsGb7G8hsAVPjn40MZWU8/bfg4QSAB2rcPePFF86/fogU13LKXKePOnTRLOXMGcpWqQuMxT09PBM6YAdfp04FXX7XPPS1h0iSKNUVHV/69DcCCwjA2MmNGJmJivKFUSmB80q+BTKbG5MlZGDMDGLRpEJ50fhKre62GZ01PaDRAaCgwZQqZy1pKx470jund2/Jzfz31KybHTsao50ehsaIxTl86jTCvMLi4uMDDwwOtWrXCC7++gAVdF+Dlxi9bfgMtkyZR9tScOYaPUSqpF0piomXiMHIk/QHHjLF+fOXIGjQIcc2bI604XbpsrxipWAwUFcEvIADhHTrAu7ID5ImJ9B/KhQvVpvEWL3kxjA2QmHhBqZTB9D8nMZRKGWJivBAxfDP6Ne+HXUN2wbMmWdGvXVva8dUaRo60LjgvCAI+2vcR3JzcEP1KNC66XkT9kPoYNGgQevfujbCwMCTdSoJSrcRLvi9ZNzgt48bRIO/fN3yMQkEvSHOtvCCLSgAAIABJREFUV7TYM46C4sZjAQFIVav1Nh5TaTRQSaVIPX8eq1evRqK9kgLMpU0b+jtV9n2NwILCMFayc2de8czEsE3JSy9RsFwupxWcp58GlEonZP41Hs/de7Okz/uDB5SlOm+e9V82+/enzruWNjD87cxvyM7PxpaBW+AsdUb81XiENQrTOWZZ4jK8G/yuYd8uc/HzA9q1M24fohUUcyvltdjDgqWYksZjajUtv5lAqVQiNja2ckVF23irGgXnWVAYxkqio4uKl7n0U7cusHkz8MknQJ069EVSm+mpVEoxa1apn9aCBfQ+tKUNu6sricrq1eafo9aoMeGvCejTvA9aeraEQqXAqdxTCPUOLTkmtyAXf6X9heGBw60fXFkmTAC++85wCrFCQfssFZSWLYG0NOOzHzOwtvGYVlSys7Ntur9FDB5M/1HZ6hJgJ1hQGMYKMjLkxQF4MTIyKO5x6hRw9y61AHF2JtullBRg40ayppo9G2jVijrPAmIkJTVAZqYceXk0M/n6a9vHNWoUZXtpTFt/AQCm/t9UFBQVYFWvVQCoqLL5U83h6lT6Mv8p6Sf0a94PtVxq2T5AAOjSheIkhw7p3681rrR0ycvZmXqbJCXZNDxbGo8plUocNjc12h40a0ZmlPv3V949jcDWKwxjBXPn5gEodZUdMADo1o3ehfHx1AKkeXMSGS3371PbjoAA4Px5ABAwd24eBMEXQ4da186jPKGhlB12+LBpW6nknGQsS1yGcSHj8ISMXt7ll7vUGjW+T/weWwZusX1wWkQisilZtEj/IOVymqFYY2CpjaOEhZk+Vg9yuRxpaWkArG88lpaWBrlcXtKPxuFoHYi7dKmc+xmBZygMYwUpKRKd1OBFi4Dr18kEdvt2IDCQCqfv3dM97969UosqlUqGpCQJNmww32HEFCKReZXzCpUCAzcOhFgkxocdSi1Gjlw9gvaN2pf8vvPiTni5eaF1g9b2GaCWN98kQ8XLlyvuu3OH4hbWxGtsjKMkJyfr/K5tPLZw4UJKEzbHu0zPdRxKZCSwZUvpzK4KYUFhGCvIz9f9p5OTU/r5/n0Sk4ICKhMoi7s7lWOUnifGzJkUY7EXQ4cC27ZVFLOyfLT3I0hEEgx+fnBJP3hBEHDk6hGEPV367X5pwlKMDXFAFXjNmlRws3RpxX337lG6mzXYaMGSm5urk81lTeMxlUqFvLw8q8dgMV5eVFy5c2fl3dMALCgMYwVubqaDFCkpFDPR8sQTQJMmtL0Ujd1baNSrR6sfa9fq378vYx/W/rsWN+7fwJT2U0q2X7x9ETVkNdDQnZby0m6n4cT1ExgQMMC+A9RiKIXYFkFp3pzS3O7etep0ezUeK38dh6PtN1/FsKAwjBUEBKiLK+AN8+ef5Kbepw/Fi//3P+D0aW38hCroAwPVDmk/bmjZ667iLkZsHYH+z/VHqHco/J/yL9lXfrlreeJyjAgcARepfZpxVaBJE6B9+4ppr/fuWVfuD5APTWAgcOKExacKgoD7gm0ZYlrs1cDMbPr0AfbssVpI7QULCsNYwdSpHgCMr/HfvEmO7V98QWGBtm11ixYFQYR580w0qLKSiAhahjt9Wnf7e3+9h55NeyL2UiymvDBFZ1/8ldKA/APlA6w6tQqj2zioP7oWfS7E+fkkDNZiQYFjfmE+/jz3J97a9ha8Y7yxPWs7BJFp8xBjjcekUqnpxmP2plYtaj+8eXPl3rccnOXFMFbg6+uKoKBrSEjwgq+v7veystZKe/fSKkxFNGjR4jp8fRs5ZHwSCWWa/fQT9YwCgA0pG3Ds2jHM6TIHR68dRWefzjrnxF+NL4mX/JHyB0K8QtCkThOHjK+El1+mGoqDB8nwECBBMXNpSS8hIQZfrIIg4Pyt89h1cRd2XtyJ41nH8ULDF9CzaU9MD5sOLxcvLFiwoEJVfHmMNR4DYHbw3q4MHgz5Tz8h+dlnK3qOBQZWStYZe3kxjJXs3JmH3r1rF9uuWIZMVoStW++he3czLYWt4NIlmhVduwbcKspG0PIgbBu4DR/u+xAjAkdgaMuhJcfefnAbPgt8cHv6bUjFUrT9sS0+6fgJXm1WCaaH338PxMZCPm8e8ubOheTgQYjz86Hx9YU6IAAe06bB1cfH/OtdvEhBpOIMsgfKBzh4+SB2XtiJXWm7UKQuQg+/HujZrCde8n0JNZ10+5hUauMxO5GVlYW4gweRdu4c4OwMVZlCR625p5+fH8LDwx3qOcYzFIaxkp49PTB5stbLy/xv1DJZEUaPzkb37j6OGxyAxo2peHzLFgErlSPxbvC7cJY648KtC4gM0H3h/XP1H4R6h0IqliIxOxG5Bbno7tfdoePTkufhgaLERNRv1gwNAci0s4OrV6E8cgSiH37AtaAgOM2aBY+ePU1fsEkTaO7ewS9/f4ONtw7h0OVDCKwfiB5Ne+DPyD/RwqOFUQuZ8PBwpKenmyxu1IdMJrOs8ZgdKLGJUSppqbBc1bx2tpWamor09HRERERY3n7ATFhQGMYG5szxAWCJ27AKL76Yje++86mU8Y0aBczetQxu4bfxUYePMHLbSLwX+h5kEt1ZVdmCxmUJyzC6zWhIxFZmWllA5owZ8I6JgUSp1PuX04qLV0IC1L17I3PyZPjocSpWqpWIvxpfspS11EOBW4d2Y9ig0fi196+oXaO22WPSNh4zZr+iD5lMhoiICMsaj9mIjpiYgdYeBoBDRIWXvBjGDuzceQPjximQldUA+vuhAC1a5ODuXRecOFEPtc1/v9nEqWvnEbQ4DHsGx+NZn5posawFLk28VMFGpfOqzpgZPhOh3qHwXeiLC+9dgIerYwPLmTNmwCsmBk4WvLSLZDJkF4tKTkEOdqftxs6LO7Hn0h741fFDD78e6NG0B0IWb4a4xhMwu+2lHsx+WQsCZCIRInr2dNg3f31kZWVh9erVVs+koqKi7C5+PENhGLtQD089BezfL8e33+YhJUWC//4To7BQA19fNRYv9sC77zbC8OGoNDFRqpV4+69h6KD6FIf/fBaxYTMwrOWwCmKiVCtx4voJtGvYDiuTV6Jns54OF5O8nTvhHRMDmYUvQyelEl4xMXhXsxfr6qahS+Mu6Nm0J77r/h3q1yxTdBiaZV0LyzIEBwfDy8sLhw8fLrFj0emHoo1NeHqiw/z58LJjHxZzMOU5JhaL0bdvX3h5eaFWrVpYtWoVLhfHlbSeY/aO9bCgMIwdWLQImDiRsr+WLPEt2f7tt9Sp9cIFMsJ9993KG9OXh79EnRp18MWgd9GnrwYFzj8hcfTxCscl5SShce3GcHN2w9KEpVj5xkqHj60oOhoSQy9DmYyK9IKDqcNj586UBVaMVKnEB3uVWHQ8r8LSXQnBwfTHFgSbmk95eXkhMjIScrkcycnJyMvLK8me8vDwKM2eOn8emDEDWOn4vx2g6zlmjCtXruDo0aPo379/hX2O8BxjQWEYGzl3jkwgt22ruK9pUzKC3bMH+OYb27JhLeF41nEsTVyKpNFJ8HITQe18EwHyCfCt7Vvh2CNXj6B9w/bYl7EPNWQ1dIobHYE8IwP1k5KMF8HFxZGn/4YNFXaJATxzOgWFV7MgM5T91ag4HfvatdLPNuDq6oowY4aTn3xC+eH//AO88ILN9zNFWa8wa00stdcx+lwWwoWNDGMjixcDo0dDb8V7s2ZUtF2rFtCrV+WMR14kx9DNQ7G4+2J4uXlBrVFD0WIxXE7rnx7FX41H2NNhWJqw1D5NtEyQN3cuBAAGff+VSiqeiY832OdDKL6OQUQiu3dwNIq7O31jGD/edG8SQaBjioqos1pBAbkD3L4N3LhBFalZWcDVq0BmJllUX7hA31z+/Rc4dQq5587pLL9ZY2LpCM8xnqEwjA3cvUueWbr+XKV4eAC5uWTDUlltv6f93zS0bdgW/QNomWNL6hY07ngUx/8Xjdu3dY0oBUFA/JV4TGo7CQcyD2B1Lwu6c1mJJCWlNDVYn+//8uUmryFTqSCJi6MqUrWaGsCo1bo/N24An38O/P234WPK/9h6TF4eBcmcnAwfIwjkpiwWUwWqsR8DxyjatwcaNCj5e2hNLAGYbWIJ2N9zjAWFYWxg5Uqge3edf9s6fPcdNR586qnKGc/utN3YcXEHTo0pbcQy7595mN5lCjYdBZYulSM7m5IG8vPFqOFaBLean2Kj90EMbjEYbs5uDhlXoaoQBy8fxK6LuzAiNwNPa3doff+BUt9/MxE/eEAvaImEXuDlX74PHpBFflCQyRe0OS9xs/afP0/+OvHx5NJp6Hwbv124bN4MnDlT8nt5E0s3N/P+f7S35xgLCvP/7Z15eIxn28bPZGYiERKEJBI0IRRRSYqqiqXWom9bS6kuPm1VqRbValT7FtXFvrW83bS09tpCKdESYikitkaCkFiCTARJDJPMcn9/XCYzk0xmy8xkcf2OI4dZnm2C55z7Ws6LsRONhsJdpZm8XrtGgtKmDTVvN23q3OvJuZeDEVtG4Lf+vxVVch26cghZiixUuxiN5OSrWLcuEG5uDYqVNTfEor+A1hFXsU3I0a+fYyq8ruRewZ9pf2Lb+W2Iz4hHeL1w9GvaD9X9ggBcoY2K+/7bUMaqDQoCPv+89A3kchqP+fbbrlseNmxIA6/mzycHACcREBCAlGJhL1txhucY51AYxk62b6eVR/v2pt//9FPgrbeoW/3cOedeixACo7aNwpDwIXg69Omi1+cemouI0//DgAF1cOpUEDQaqZGYADToS6OW4fixR9C/f21MmpRh1zWotWokXErAx399jNb/a42o76Ow99JeDAkfggtjL+DgmwfxSedPII14HKqymD8CUEml0ISHm9/I359yG1ZUQzmUzz+ngVd2OB5bi7VeYeZMLG05jrXwCoVh7GTRIjLLNcXJkyQ4Z88Cv/5K+VRnsvL0SqRkp+C3/r8VvXbx9kWcWvEUMnZ0tdJvzB0qlTvmzQsCkPHABcA82YrsoubCuAtxCKkVgr5N++K7Z79D++D2Jrvt/SdOBH780fyBPTz0qwoPD0rWFxQUve2mO44ldBMcnb08NKRWLeCrryhBf+AAhbgcjLe3N8LCwix6jpkzsQwLC3O4YSQLCsPYwZkzVHBjorwfQgAffkiVpL6+dC8zVVLsKC7nXsb7O99H3KtxRrNLPv0uFhk73rXJZwwAVCoPzJsXhC5dskuYV2qFFknXk4osTlJvpqJ7aHf0a9oP83rPQ1BN8yGrpOtJ+GDfB5jbLBhRMDMA4OxZ6kEBgAdWIQgJAS5dghbA9eBgNDx+HHjkEfPhLF2l18svW/7gjmT4cOCHH+jbxPDhTjmFznNsoc5O+gF7DXp2ir+nw1meY2y9wjB2MHo0EBho2tlj+3ZgwgTKmcpk5Pr79NOmx6eXFa3Qovuv3dG7SW9Mip5U9Prt+7cR0eYCrqQ8DnOR7W7dgMWLgUaNgMOH6d53+TIAaNGuXSaOHGmIXGUu4i7EYXvadvx5/k/U9qpdZHHS6ZFO8JBYFqxr+dfwye5PsCNtB6Z1nYbnrteH34CBNnfKA2S/kvv556i3di2tXr7+mj6ICRSrV0M+axYkPj7kYFyzpn0OxvaQmAj85z+0PK1Vy/L2dp3CNi8vQO85xl5eDFMBuH2bnHxTUkhUDFGraezvjBl0L9G9VqMG7efl5dhrmXdoHjambMTe4XuNwkufbliEGS+NhkZdeqjLz49aHEaMoAKr6dOBTp30fXlSqQpPzR6K4/fjEN0oGn2bkog0rt3Y6utTFCow5+AcLDqyCCMfH4mPO30Mn2o+AMru5QWtFli3jpJVjRtTmOnBTVK+bRsKp01D4PHjEDBwMAblX9wA3LDFwdhe3n4b8PTUD6VxAraIijPFBGBBYRibmTsXOHEC+O23ku99/z315+3ebRyJadGCmr5btXLcdfwr/xdPL38ah0ccNrrJF2oK0frZ33Dhr2FQq2VIT6dqtGHDKEK0Ywfwf/9Hz4cPB3SN0tWr05TJqCiKOEmlKrzw8nEs/6kVqsuq23RtWqHFilMr8MnuT9CxYUfM6DEDIbVCSmxnyW246HgA1IZiYohKRZPEpk8HnnoKGfXqIfinn6w6pkYmQ2YpDsYO4eZNoGVLskpo3do55wBw7do1JOzdi7QzZ8zOQ+nUqZNz3ZAFwzBWo1YLERIixJEjJd/LzRUiMFCIY8dKvvfcc0Js3GjbuS5evCtGj74oOne+JKKirojOnS+J0aMvivT0u0KpUoqI/0WIpUlLS+z328nfRNOofwRlc4RITxfi8GEh6tcXonZtIc6cEeLtt4VYsECIJUtE0XaAEKdPCzFggP55ly6XbLtoIcTejL3i8e8fF+1/bC8OXj5ocXv59u3icrt2QiWVikKp1OiCCh+8drldOyHfvt38gRQKkf6f/4iCYsew9FMgk4n0mBibP6fVLFkiROfOQmi1zjuHEEL88Ye4262b2L9/v9i4caNYtWqV2Lhxo9i/f7+4e/euc8/9AE7KM4wNbN1KYa527Uq+N2sWzXJ//PGS7zVtan3p8LZtckybVojjxwMBGPeMHDyowo8/uqFJy3No9Hw/vB75utG+QgjMPTQXMvUGo9dN9Q/KZNRMbkhuLmDYE5d1qwCbUzfDz8sPftX94OflhzpedUyaMqbdSkPMXzFIvJaIGd1n4KVWL1ll41KvTx+gTx8oMjJoYmNyMtzz8qD18aF8x8SJaGhFvkO+Zw+Cd+wwCm8VYcZwUudgnN2lC12Loxk5khL0a9YAQ4c6/vg61q+H9/PPO9Sby1ZYUBjGBkorFb5yBfjf/ygUZopmzSjpbYlJk8wP69KJy9lTzXExZQo+LrxkVN67J2MPCtQFqFvbuFzXVP9gTg61aRji40Mj3XW4VcvFz8d/Rs79HNy8dxM593JwR3kHNTxqFAmMTzUfZOZnIuN2Bjo26ojx7cfDzc0Nf138C37V/VC3el34efmhuqy6WYHxDglB6OLFln9JpWDWwRgwazgpVamgnDKFbA8cjURCMcchQ4BnnzVWbEehUlEp4fTpjj+2DbCgMIyVnD4NpKYCAweWfO+TT6jyqzRj26ZNgRUrzB+fxCTIhp4RjxI9I/MOzcOEDhNw9JQWhw6qSjQxGpKcTLkUHdWrA02a6H3JpFIVnn7CD4uHGtc8a4UWd5R3cOPuDSxNWoqlx5ciMjASQ1sNRaGmEOdyzuHQ1UPIuZ+DnHs5RWIkhCgSoaI/DR8/+LNu9bpFj2t51rJqcmSRg3FpCaOCAn1i3IR5ozuA+sePQ5GR4Zzqr44dge7d6YY/a5bjj79nD31radDA8ce2ARYUhrGSb74h0ShuQZ+UBOzaZT6k1ayZ+fe3bZM/WJmYFoDSynsNe0YaRt1EwrYGuDbnDZw9ex9CmA83bdoEzJ4NDBgAbNsGfPYZcOoUJeQJN0ycWNKaww1uOHTlED7c9SEa+DTAvtf3oXWA5YTzPdW9IoEp/ufVvKs4mXWyxHt5BXnw9fQ1KTyGjxvPXo+iK7DTcFLnYFyWVZJZZs4EHnsMeOMNoHlzxx57/Xpg0CDHHtMOWFAYxgpycihSUrwxWQhyYJ861XwkIyiIXMrz8kqGmQBg2rTCB2Gukvj5ARs3Gpf3rl2rL+9VqaR47z0l0i81hdAuhmd7d6xa5Y0vv7yKo0eDUFofys2btNr69ltaPR0+TL6GhBZRUdcREmK85DqVdQofxH2Aq3lXMafnHPRt2tdqu/vqsuqo7lsdDX2tn0+i0WpwW3m7KNxWXHAu5V5Czv0cfHTqtD53YqfhpEythqQ022hHEBhIS9n33qNmTUf5i6nVZPVypOTwNJfjktQ/w1RyZs4UYtiwkq/HxgrRsqUQKpXlY0RECJGYWPL1ixfvCqlUJdLThfjgAyFOnhTizh0h1qwRolo1Id56S4gDB/SFSdWrC3HvnhCPPqp/TSIpFLWemS4u35QLIaigaOzYLCGVFtpS8FT0I5MViO3b5UXXeD3/uhgRO0L4z/YX3x7+VhSqC+38TTqHK1FR+pK27t31H2TKFCF++834w125IkSXLiY/+JWoKOdeaGGhEOHhQmzY4Lhj7t4tRJs2jjteGWBzSIaxgFpN4abiyXiVCvjoIxrza43XYWlhr9mz5aCAiz5aExpKbQvDhwPh4eQNpuPePWpINPRGdHMDHvNujYZ+9XDzJvDcc8A///jj7bczIZMV2vR5ZbJCTJhwDX361MN91X18lfAVWi1pBV9PX6SOScWYJ8aUPnq3nNA6KNGtNTUlzZHIZBQ7nTCB/iIdQQUJdwHsNswwFtmyhXKdbdoYv/7DD5SEf+YZ647TtCnZ2BcnOVlSlDzXRWtu39ZHa2rUoHJeQ4qX96rVMqizWhaN/2jZEkhIAL79NgQ9elyDVKoCtfKZQ1skJl9//QhWn16N5oub49j1Yzg84jDm9JqD2l61rfuwLkYTHm7ZwVhnMln88QNUUik0t25R3M/UX5SjePpp4MknyU6hrGg0FA81VSlSDrCgMIwFTJUK5+aSS/mcOdaHwktboeTn6/8bFi/vrVGDci+WynsBIEfuiZdfBn76ifK/Hh7Avn3A3r0heOaZO2jXLhNSqfqBuOiRSlWQSlVo1y4TsbG5eH7MdXRY2gFzD83Fb/1/w4bBG9CkThPrPmQ54T9xYulGkzrOnqVEfYMGlMNQKqkS7AFuAPw3b6alYYcOZJuSmemcC54zB1iyhJaaZeHgQSAgwLVuymbgpDzDmOHkSRqnMWCA8etffw3060e+XdbStCndQ4pTs6b5lYOl8l49WiQl6f3Fbt6kSIiXF/Dbb/VQqxaQkaHA7Nk0sTEvzx0+PlqEh2uomquWBpP+eg8H1h/AV92+wiutX4G7W+X4zukdGoqrUVEICg01/pY8bZr+cWhoqftrAVyPikLDFi3IJ2fUKFLl1q2pGiImxnh2cllp0ACYOBEYP56WovZSgcJdADgpzzDmePNNIb780vi19HQh6tQRIjPTtmNlZwtRq1ZJB47hwy8KqbSw1Hxy3bqUpB8wgJL0M2YIceiQcT5ZKi0Uo0dfLDqmVivEM88I4esrxLZt5q8rV5krJu2aJOrMrCOmxU8TdwtcY9PhaLL++EMUymS2VyA8sF8xae1y9aoQI0cK4edH/xAcaWGiVArRrJkQW7fat79GI0SDBuSlU0FgQWGYUtAJgFxu/PrQoXSztxWtlry0srOFyM8X4tdfhejRQ4jAQH2VV2kFSt27C5GSQtVde/YI8cgjxQVFJdLT9Te7efOECAgQ4pVXSr8elUYlvjv6nQicEyiGbx4uMvNsVMgKSHpMjCiwUVSs8vI6e1aIIUPIEO3bb4UoKHDMBe/YIUSTJkLcv2/7vocOUYlhBYIFhWFK4euvhXj9dePXDh8WIiiIBMFWNBohmjcXok8fEqp+/YRYu5buJe3aXRGAxq4SX0Aj2rW7XHSeo0fp+P7+QuTkmL6WnWk7RaslrUSXX7qIY9dMuFlWYtJjYkShTCY0Fn5xGnuMIY8dE6J3byFCQ4VYsYL+UsvKCy8I8cUXtu/3wQdCfPZZ2c/vQFhQGMYEKhVFE5KS9K9ptUJERwvx00+2HSs1VYjJk4Vo2JBWKC+9JMSNG8bb/PijY3pGcnOFaNyYXI83by55LcnyZNFnRR8RtihMbErZJLTOdsAtJxzmYFwae/YI8eSTQjz2GIWsyvJ7vHiRQmqXbHB21mppmXrqlP3ndQIsKMxDizl7+N9/F6JTJ+PtN2yg+4dabfnYN28KsXixEE88QTd3XcPitGkkLoYkJNBqYvDgdCGTFdgsJjEx6UIIuse89JIQrVtTWM4Q+V25GP3HaFF3Vl0x/9B8UaB2UMimgnM3PV1cfOcdcalLF3ElKkpc6tJFXHznHXE3Pb3sB9dqSbXDw4Xo2FGIffvsP9bUqUIMGmT99omJQjRt6nxLfBthQWEeOv74I0u0a3dFSKWqEqsCqbRQSKUqERp6RUydmlW0T0GBEGFhQuzcWfpxCwro/tK/vxA+PnRz377duIt+9Wrj+8bGjULUq6c/bkxMupDJCq0If2mMxEQIWjk1aUK5k+xsek2pUopZ+2cJv5l+Yuz2seKm4qYDfoOMEWq1EMuX04qhb18hTpyw/Rj37lEYbdcu67afNEmIjz+2/TxOhgWFeaiw7YZdWHTDXrCAqqaKo9VSzuLdd6kaq1MnurHfuWP6/MeOkQWLELSCCQoqOZBr1Ci5aNr0shnBKxQNWxwRy37/t2iff/+l84eECPH770JotVrxe/LvInRBqHhu9XMiNTvVAb89xixKpRCLFpGiv/yyEGlptu0fG0tJNksJf62Wvt2YmuRWzvAIYOahQW8P72F54wfIZIUYM+YaVq4Mwe7d+hG+V6+SoeKvv5Iz+rBhwGuv0Whzc+TnU5/I2LHAhg3krm64T0EBtUusWQMMGaJAnTpy1K4twb17+p6R+s/E4aTyL/z+Is31uHcPeOIJ6tqvWROYOP8oJsRNQH5BPub2movujbvb+qtiykJ+Ps1dWbiQvHT++1+gfn3L+wlBzU3dugEfflj6didPAv37U1OkowwmHUV5KxrDuII//sh6sDIpfVXSrRuV5ioU5LfXqJE+TzFokFzcvasv9a1dm0wb9++3LYxdWCiEl5cQkZH6sJQhv/wiRNu2tHKRyUpuo9aoReiCUHHoyqGi1956iwqP6tZTi0E/vyPqz6kvliYtFWqNFckexnlkZ1PyrE4dClHdumV5n3PnKEFvrsnp00+F+PBDx12nA2FBYR4KLJXl+vlRmGrQIGoenDXLsHlQI8LCLotatShEvnYthbxtJS9PiF696P5iqriosJCS83XqCPHNN5TrLc765PXiqaVPFT1fs0aI0MYaUaehXHgPfVN8+venIk+ZZ/vFMc7j8mUhRoygmOSMGfSNxRwff1zUQHT37l2xf/9+sWHDBrFy5UpA9rt1AAAgAElEQVSxYcMGsb9/f3G3LAUAToRDXkyVJz1dgWbNqkGtlqK0gX7DhpGzr24cd/XqZF0SFUUWUFKpGocOFaBtW2+7ruHGDYpmtGlD7sXt25NVlI4rV4C+fYH0dPIl3LiRxgn/+KPxcZ5a+hQ+6PABBrYciPNpGrR5ohDqppvhh6Y4sDMAjWpZP2uEcTGpqRT+OniQppm98Qa5DxdHoUBmp07Y/+abSLtzBwCg1s16ASBVqwFPT4SFhSE6OhrBwcGu+gQWqRxGPQxTBgzt4QF7LeIFfvlFbtf5z50joXrhBRoc+Oijxma2sbFA27ZAYSGF3uvXBw4dIkNaQw5dOYQsRRZeaP4Cdp7dg4geqaj5xCZ4XhyEo7FtWUwqOs2b05S22FhKoLVsSckyrbGXW2JKCpa/8AJS5XKo1WojMQEAtVQKtVqN1NRULF++HImJia78FGZhQWGqPIb28IB9FvFqtQzJyZZnmxfnn3+ALl2AyZPpy6mbm951WKmk4X3jxwPz5tH5Xn1Vv59uIqOOuYfm4uVWL2PAugEYPDoNLUNqw+/aUCycJysyhGQqAW3bktvxd9/RX3ybNsCffwJCIDExEXFxcVAJAbhbvj2rVCrExcVVGFFht2GmymNoDw+UtIgPCqIRv5Ys4vPybPv+tXUr8OabwLJlFM7S0awZOQU/+SQ5EB8/TsazY8YAnp6AXE7hNsOx40nXk7Dt/DbsSd+D59y/h0/aQHQf6obkZL0IMZWM7t1p7vLmzcAHHyBz8WLEtW8Plbak+7S7uzsGDhyIoKAg1KpVC8uWLcOlS5cA6EUlKCgIQUFBrv4UxtdZrmdnGBdgyR4eoBu8oRW9KYt4Hx/Lx9Hx44/AyJHAH38Yi4kQFEK/eJFyKOvWUanw+vXkmA7Q6qR9e/qCWqgpxIJ/FiD652i0qNsCuwecxZ9zB+HzaW745RcKoVW0ylHGBtzcqAT41Cns79wZqmLhLUMuX76MjRs3Ir/4IByQqCQkJDjzSq2CVyhMlSc8XIODB1VGYa/ibNoEzJ5Nc0+2baOc6alTlJAHaAhVeLjG4rmEAKZOBVaupImJYWH69/LzgdGjaUUSFAT06kX3k//9j/I69erRdiQoArGpWzBx10Q84vsIZBIZNg/eimH962L0aJoiO3MmUIHysUwZUBQUIE2lwrj338eRI0cQEREBX19fpKWlYfPmzdBoNDh8+DAAoLQ6qrS0NCgUCnh721c44gh4hcJUeSZO9AcszPO7eZOmqH75JeVW2renSbB63B4cp3TUauCtt4Dt24EDB4zF5Ngx4PHHAW9v4OhRyseePw/cv0+C8v77+m137c1HrGISPtn9Cb7p8w16NO6B5x99Hr8sCoZEQisXf38qJmCqBidOnCh6HB4ejhUrVmDhwoUICAhAZGSkXccpD3iFwlR5QkO9ERV1FUePBiE01Pg7lOFAv7//pmF9JdEiKuo6QkJKr6JSKGiVIQSwZw8l+QEq4FmwgMaHL14MvPgiva5LzF+5ArRrR/mSa/nXMHnXZzh2bAHmTG+OsV2/hFZo8eaWNzE1ZA/++x2wejUdIymJQ11ViaysrKJqrsOHD+Pu3bsAgHPnziHQyooLtVoNudy+SkRHwSsU5qFgyhQPyGSWQ1amkMnUqFHD0yiZb0h2NvD00zTaOzZWLybZ2cB//kN5ksOH9WIC6AVl/nzgnbFKfL73czz2v8fgJn8MTUO8MKHb65C6S7EueR1CPZ7AtHFN8dNPwEcf0SqqIVcIVymUSmXRY52YAJQb8fCw3irI8DjlAQsK81DQr58/JkzIhExWaNN+Mlkhxo+/hujoenj8caruNOTCBeCpp4DevYGlS/V9anv2UFPkY49RLqX4OPOmTYGDBwUUmlsY+W9TJGcnI/GtRLTHOHR8isqThRCYc3AulOu/w8svU4GAjw+F1ZiqhaenZ4U6jr1wyIt5aJgxIwRABubNC4ZKJYH571NayGRqTJhw7cF+QI8eVKI7YACFsP79F3juOWDKFH3Xu1oNfP458NNPVC7cq5fpo+d6H8WJfx9D6GuLsPrFtXiq4VMAqKFR162/J2MPrse9hFBlPbz6KnkGHj3Koa6qSEBAAFJSUsxuI5FIjB5LJBJoNPpVt1Qqhb+/+Tyfs2FBYR4qZswIQZcu2Rg/XokLF+rDzU0YVX9JpSoIAURF3cDnn3uiT5+Qovc6dyY7lJEjqYP+1i0Sjeefp/cvXwZeeQXw8qIch6nQ94VbFxDzVwz2H74HodqGpPmfwddHL2yHDumNZv+7Ygvux3+NlUfd8NprVD0WElLymEzlJzIyEvHx8Wa3effdd1GrVi0AwGuvvQYAWLBgAXINOnJtSeA7AxYU5qGjc+d6yMoC/PwUeP55OZKSJLh50x0hIWQPf/OmPzp2bIg+fUruW6cOeXLFxQESCTVJCkG5k7ffBj74gASheJPzHeUdfLnvS/xy4hdM6DABXtkfYUddN2RedYNvS9omJ4eO17IlcOTCWRxeMB6/fSdBbCzg4UElx0zVxNvbG2FhYVi4cKHR63v37i16XPy94oSFhZVryTDAgsI8hKxfT2W33bt7Y/78UDRvTnNNOnem9//+m0Rh7Fjj/YQAvvqKwllHj9Lzl14CZs0CVCoSleL+W2qtGt8nfo/P932O55o9h3/f+RfavEC0+oMcOM6fJwEBqP/kiSdIjIYOz0NUNNA2KgQd3qGkvhVOHEwlJjo6GhcuXIBKpbJ5X5lMhk6dOjnhqmyDBYV56PjhB6rAeu89moEUFaUXE4Aqtm7fpgbEqCh6TaMB3n2XbvoHD5KBY2oqvS6Vki/X/fv6Ywgh8Gfan/gw7kME1QxC3KtxiAikVvxPvgZefplWHefO6ffR+XfNW5yHS2le2H0qAK8NJA+wJk1c8IthypXg4GD06tWLvLxsEBWZTIZevXqVu+0KwFVezEPG2bOUTG/ThjrTZ8+mjnND3N2B118Hfv6Znt+7R02PaWnA3r2UG/nlF6BTJxKl1FTa9pVXyAQy6epp9F7RGxN2TsCsnrOw67VdRWKiUJCgjR+vLx3WcegQHfuzTyUY+Nk6bFlTD1otnYN5OGjbti169eoFmSlbexPoxKRt27ZOvjLr4HkozENFTAyFt374Adi5k8Rj0aKS2126RKJz8iT1jzRpQmXBSiXlMk6eJOdx3UhgAPg3XY6+L2bhurwQH8//F/994WXIJMY3hiVLgF27yOrl77+B6dOB+Hha6dSqBQQFaXE9cjw2THoHQ3s2x8GDJDzMw8W1a9eQkJCAtLQ0AMXmoUgpsBQWFoZOnTpViJWJDhYU5qFBpaIVgLc39ZN07QqkpAB165rePjqaTByHDaPcSVIS5Uy6d6eGxOrVaTulWon5h+Zj7qG5GNb6/+CfPB1zZ1THvHk0Z16HVkuzUH7+mVY3584pMG7cCbz1Vhays5XYvdsT7t4SKLr+grvLNqNvX/OjxZmqj0KhwIkTJyCXy6FUKuHp6Ql/f39ERkaWewLeFCwozENDbCwwYgSFpeLjSTAmTjS97fHj1PcRGEgNhabsU4QQWJu8FpP+moQ2QW0ws8dMhNUhA6+TJ4GhQ8m/a8kSakjcsoVWJJs2ZeLAgf04fz4NSiV14utQQw0JZMi68SgmT45Gw4bs/shUHlhQmIeGXr3ItHHtWspLpKTQ/JHi/PUXJc0XLKBEfEQEJdxXr9Z3vP9z9R+8v/N9FGoKMa/XPHQJ6VLiOPfuURnxzp3AqlUUbnvppUTcvm1d0rWixccZxhJc5cU8FFy/DuzbRyGoKVNotWFKTFauBCZMoAmtKhWN5dVoyD5FJgMu3bmESX9PQsKlBHzV/Su82vpVuLuZrm2pXp2chDdvppko4eGJuHUrDmq1dRU8usFJAFhUmEoBV3kxDwVLl1ICvkkTEobBg43fF4L6SSZPpqbFuDiyWfn6ayAzE1Co8zD578l4/IfH0dyvOc6+exbDIoaVKiaGvPAC8MwzmejatXQxCQ0NxZgxYzB58mQMGzYMvr6+APSicu3atTL/DhjG2bCgMFUeIYBvvyW7lCVLaIy3oR+WRgOMGwesWEHOwGPGUCNhUhIw6h01lG630OSD4biWfw2nRp3ClK5T4O1hfUL0yhVAItkPqdS0mHh5eWHw4MHYs2cPZs6cievXr2PQoEFF71eUaXwMYwkWFKbKs28fkJtLM0fatyd3YB1KJVVunT5N1vDPPUc/O3YApxW78PgPUfBstwodsn/EsheWIdjH9iT5N98o0KRJGsaNG4cOHTpg1KhRiImJwcCBAyGRSNCiRQtkZ2fjzJkz0Gg0iI+PR0BAAPz8/IqOoZvGxzAVGc6hMFWemTPJsHHbNrJM0XH7Nhk7BgRQOe9nn1Ellk/jFPxnzYc4e/MsZvecjY4DX0CzZm7Iy6NqLVvIzweOHz+BLg9y9rppfGq1Gm+88QYiIyNRr149ZGVlFe2jUqlw+/Zt+Pv7Iycnp+j1EydOoKPOiphhKiAsKEyVQVezn5WVVVSz7+sbgIMHI9GsmTeio/UWJleuAM88Q9MSk5Jo9bLrwE3MPz4Va/etxcfRH2PTkE3wkNBwo+7dqTrM1lkkP/8MtGqVBY2m9Gl8EomkxOpDqVQaDVaqCNP4GMYSLChMpSczMxP79+832VUMpODdd+Nx6VIY3norGkAwTp+mqquOHWnVMu3LAijCv8GTK2ZiaKuhSBmTgrrVjbsdX3+dmhttEZT8fFodvfFG6dP4atasifv376NatWpG+1arVg2FhcbDwMp7Gh/DWIIFhanUJCYmWjDTU0MmA8LCUrFp0wUcP94L48a1RbNmwOl/BT5ZsRFzz36E8MvhSHg9Ac3rNjd5lGeeoTkoKSmm587n59OslKQk4Ngx+vP8eaooU6k8Yc6aSS6XIyIioui5TCZDnTp1SqxIynsaH8NYggWFqbRYFhNjVCoVzpyJQ0QE4NsCcIucgF/Sc/H9s9+jR+MeZveVSsmC5ZdfgE8+oU56nXAcO0YhtFatyP+rc2fg/feBd94h65TAwADEx5c+jS81NRU9e/ZEixYtcO7cOXTp0gVZWVlG+ZOKMI2PYSzBgsJUSjIzMy2KSWhoKPr27QtfX19cvXoVsbGxyM3NxVOdtmKz1yaMixqH4ZHDIXGXlHqMW7dINJKSyE5l1y6yX4mMJPHo2ZM64Fu0gNEq5NAhICuLelCUykj89Vd8qee4d+8e1q1bh759+6J///7IzMzE+vXrS2xX3tP4GMYSbL3CVErWrl2L1NTUUt/38vLC2LFjsXXrVpw9exbdunVDo0aNsHTpUggING3WFK8MfcVon+xs41VHUhJNUYyKIk+uNm2AuXOp0/6FF8xf3+DBlKMZNw44cgT49tu1aNKk9Ou1RPPmzTFkyBC792cYV8ArFAdhqsIoICDAaa6grj5fRUKhUBQl4MeNG4cjR44gIiICvr6+SEtLw+bNm416OwAgPj4eEydOhJ+fH3JycpB+IQObNytw6pR3kYDk5+uFY9Ag6pIPCzOelFhQACxfbl5Q0tPJmn7pUup/eekl4LPPonHx4gVIJJV3Gh/DWIJXKGXEXIWR4dyC6OhoBAeX3TnW1eeriBw4cADx8fFQq9UYN24cFAoF1qxZU9TbcfjwYdSrVw8SiQTbtm0r2m/06NGIj49HSkoKVCoprl7tisDAjmjThoSkcWPjDnpT5OcDjRrRUK2AANPbvP8+hb9mzgSGDCF7fLkcqF07EaGh9k3jYy8vpjLAK5QyYCkprLvZp6am4sKFC2W+Mbj6fBWVrKwsIyG1p7dDJlPj+efl6N/ftnPXrEmrkxUryEm4OLm5tII5eZKGeJ07B1SrBuTlAStXtsXp00BcXBwKC1UWxYvFhKlssKDYiT0VRmVxjnX1+ZyFRkM3V91Pbm7JP3NzKXeRlUV/3r5N7+Xnk1VK//5KoymG9vZ22NvX8frrwJgxCqSlyXHmjAT5+e6oWVOL8HAN6tXzxzPPeOPOHeDTT6nfJS2NzCarVaO/C0/PIMyYkYDmzdPg5lZ5pvExjCVYUOzAUoVRadVFupt8UFCQTTcKayqaTGHv+Uyh1dI89NJEoDSBMBSJ3FyaK1K9OlnHy2SAREJhJq2W7OILCmiOiLs74OsL1KkD+PkBTZsC9esDDRoAHh6eMNAQk1jT22FPX8e2bXJMm1aIlJRApKY2gFqtL+06eFAFIdwQHn4Vr77qgehof5w8ScO8DNNaCQlB0GqH4P33KQ/2zTdy9OmjhI9PxZ7GxzCWYEGxg/3795d6c9c5xxpWFw0aNAhLly4FoHeOtaVix9z5dJgTsb17E/D000Ms3vzNvZefT35Yvr7kZ6X7qVaNhEEXvlGraYaIUqkXoDt3aJXh7U2CEBBg+sffX//Y3P10164AHDyYAkBd6jaWejvUaimOHfNHcDDZr1gKPwHApEkZmDcvGCqVBKZ8VXXicupUEKRSDdTqDOzeHYJatYy3W72a+lO8vb3RsWNHPPsszU2pXdvyNTBMRYYFxUZ0FUb2VhcBeudYS99CCwuBGzcUOHcuzex2lkTszJk0TJqkQLVq3kVCoBMG3Z/+/lTRVL062b0brhbu3iVRyM6mMFRWFpCRQT0atWqZFwbD14pFoGxCCHIN/vFH4O+/IzFyZLxR9VVxLPV2eHgA9+9HYtgwEr4XXgAGDKBZ71IT/ytITIKgUplpeS/CHWq1O86fD8L8+RmYMSOk6J2rV2mkcO/eVn90hqk0cJWXjegqjMaMGWNXdREhhUbTFXfudDS7SlCrgaefPoD27eMhlapLFbGIiAhERkbi559/BkDhnYkTJ+L7779HTk4OpFIpIiK6ol69jkWCYPgjl+sf5+cD9eqZFwfdT926pm++jiQ7G/j1VxISiYS8tF57DYiLW4uzZ1OtWlmYwrCvIyUF2LgR2LSJhPK554D+/alp0dOTwlz9+9c2KybdulHDY6NGNEtl+HDg8mVAJitEbGwu+vSpB4BmsSQnU0mxjtq1gYsXeYXCVH54hWIjhhVG9jrHAmpkZMhx7BjdsLy86Cc4mHIFNWrQj5cXUK1aFgxDO/bYn6vVaqxZI8fZs8aCEBZGzXeGolGnDsx+83cFWi2wZw+JyI4dtHpYupTmmLi5AZcuAcuWRaN9e8f0dbRoQXYqn3xCx968GZgzh4SrVy8gJaXwQZjLNH5+JEgjRgBbtwLTp5MzcYcOgEolxZQpSvTpQ9uuXk39LQxTFWFBsRHDyqCyOMe2aaPE4MEU1ir+o5tlTo+VRt/C7RWxfv2UWLGizB/fqdy4ASxbBvz0E+VQRo4EvvsORjmI2Fh6feLEYHTu3At//WVfX0dpRQqPPELd7ePG0cpt+XIFNm4MBOCO9HSa/DhsGG23Ywfwf/9HobLkZEAXUZs6Fbh5k2asnD3rjuPH6yMjQwG12huXLwNdu9r7G2KYig0Lio1Yqgyy1jm2USNPPPus5fNt3OiJ06f1z+0VsYrqVKvVkj/WDz8Au3cDAwcCq1aVTJQXFgKTJgEbNtAKokMHAGgLd3dYXQGn0cjQp4/1fR3+/kB6uhxubg2KXhs8mJyHlUrgwAEKbbVoQX0nOu7dAy5coJHDZ88CgMDs2XIEBYXixRedHyZkmPKCRwDbSEBAANzdS78jpKamwt/fHy1atIBEIimzc2xAQEBRb0JpyOVyBBi0bRcXsYroVJuZCXzxBXWnf/IJhZYuXaLVyRNPGItJRgYly9PSyOWXxIRo27Ythg8fjubNm0OtlkKjMf5dqVRSSCRSPPpocxw5MhxHj9rWk5OcLDEqDV60CLh+narWtm4lk8gaNSj3ZUhuLjVBAlT9lZwswerVwNChNp2eYSoVLCg2cOoUMHt2JIpFr4zQVRd169YNMTExCA4OLpNzrDXbWSNiFcGpVq0G/viDkt6PPUYVTxs2AImJwNtvmx6vGxtLc+CHDKHHdeqU3CYoKAhNmgzBzz+Ph4dHV7Ru3RrNmjVD69atcf58V7RvPx4vvTQECxcGYcoUSoBbS36+8X+RGzf0j+/dIzG5e7fktfv4UIGDjlu33JGXZyyGDFPV4MW3FaSn07zxXbuAyZO9UbduGBYuXGi0zd69ew22T8fixYtLPV5YWJjVjWve3t4ICwsz66xrqUTWlvM5g8uXKam+dCn1oYwcSWGtGjVK36ewkGzhN20iIXnySfPn2LIF0Gi88fTTHWE4dv3IESo37tmTchqTJgFvvknmjdYUH9SsqbW4TXIy5VJ0VK9Oo4aTkw230mLIkPIveGAYZ8L/vM0glwNjx1I8PyyMJvCNHQt06RINmbkRfGawxzk2OprOt3DhQqSnpxe9vnfvXmzatAmAXsS++uorLF++HLkPYjDl5VSrUlGuo29fsn+/dQvYvh345x/gjTfMi0l6OhAdTSuJpCTLYgJQlVVeHlA8PdKjB/DXX/rn779P+Y/vv7fuc4SHayCVms/PbNpEw7UGDKBem88+o9Us5U8AqVQFtVrD4S6mysOCYoK8PJp50aIFfaNMSaHnuph4cHAwevXqZbOoWKowKg1Xn68spKdTTuSRR6j09qWXaJrhN98ArVtb3n/TJgpxDR1KgmQqxFWcjAwKn7VrV7J5smNH4PRpfY5DIgF+/plu+hkZlo89caI/APPNLjdvUjHBl19SbqV9e/rcetwghD+ioiyfj2EqMxzyMqCggCwwZsygTuZjx4CQENPb6iqFrK0wKqtzrKvPZwuFhRSW+vFHSpq/+iqtClq2tO0YH31EIrJ1K92UrWXrVhKwzp1LvufpSXmL+Hjg+efptRYtyPpkxAgKY5prjgwN9UZU1FUcPRqE0FDj71/Tpukf//236VnzgBZNmlzHiy82tLsJk2EqCywoIAfcFStoFdK6Nd0MW7WyvF/btm0RFBSEhIQEi/NJHOEc6+rzWeLcOarKWr6cxOOttyiXYWuF8sWLlHQPDiZBsrVjPDaWEv6mBAXQh710ggKQ9fyGDSSCI0eaP/6UKR7o318Dlcr2Bb1MpoZG41lsxcIwVZOH2npFCPp2O3ky3cRmzIBRQtcW9BMU5diwQYkBAzwRGOg851jd+eRyOfbsUaJ5c09ERDjfqVappLDUDz8AZ85QMnrECBjZydvCxo3AqFH0dzBunHUmjYbcuQM0bEh/lzdumM7NHDtGq6Yi55sHJCdTk2FiIq1wzKH38vIwv6EBMlkhXn31Go4dCzHqUykOW68wVQbxkJKQIETHjkK0aiXE1q1CaLWOO3b9+kJcveq441liwAAh1q937jnOnBHi/feFqFtXiB49hFi3ToiCAvuPp1QKMXasECEhQhw+bP9xVq0SokMHIdq2LX0btVqIOnWEuHKl5HtffSVEz56W//5XrRKiZct0IZMVCkAjSMJK+9EImaxAxMSki1Gj6BzmqFVLiFu3LH9WhqnoPHRJ+dOngWefJZ+mt98GTpyg546MbwcGGvcrOBtfX/qm7mju3ydjxk6dyPzQ05OqtHbtAl58kRx77eHiRVoJXr5MVVxPPGH/NW7ZQh5k5grZJBK6/r//LvnexIlUgWZo1lic06epum/VqhDExt5Bu3aZkErVJaq/pFIVpFIV2rXLRGxsLqZPD8H69cUT9AxTdXlocijp6ZQjiYuj8MqGDWWzUzdHQAA597qKWrVKdmqXhdOnKaS1ahUlxydMING1s1LaiA0bgNGjaZrhe++VTcgLC8lPKzKy9PyJDl0exbBfBCAblF9+IcHp3ZvCZ4bcuUPlwPPnAxERQEREPfTpA2RkKDB7thzJyRLk5bnDx4cmNk6c6I+QEDrIzp3UjxIaav9nZJjKRJUXFLmcyjlXrqQb2Pnz+vJfZ1EZVygKBTnk/vADleC++SatHizlFqyloIAqq7Zto5927cp+zH37yJ05KYn6VszRoweZNgpRUsQee4zyNyNHUq+M7n2tllayffpQDsaQkBBvLF5sXinYaoV52KiyIa+8PLqBtGxJN4gzZ4x7SZyJqwWlLCuUpCRaMTRsSCW7n35K/RnTpjlOTC5coBBXZiadzxFiAlC4q107qg6rW9f8to0bU8juwdyzEsTE0Kpy2TL9a198QUI9Z47t16ZUUvXZiy/avi/DVFaqnKAUFAALF1LVUXo6VfAsWEDOsa7C1SEvW1coeXnUKd62LQ2SCgqizu4tWyi05Ug33PXrqQ9k2DAKdxUfh2svQtD11qxpPn+iw82tZNe8ITIZiUlMDK3Qtm+n39G6dfblinShOBf2lDJMuVNlQl4aDYW1PvuMekl27aJQRnkQGAgcOuS68/n6Wl6hCAEcPUohrQ0bKGfwxRfkcSUpfXaU3RQUUK/H9u2OC3EZcuoUuRicP085Dmvo0YP6jcaNM/1+69bAmDH6EuONG4H69e27Pg53MQ8jlX6FousliYykm+WKFfTNtbzEBKhYSfk7d2g0bWQk3eDCwuhmuWEDzfVwhphcuEDTFa9fd2yIy5AtW8i1OCHBuhUKQCK6bx/5jJXGuHE0wrdXL/t7ku7epRWKtULHMFWFSi0o+/fTzWTyZOCrr+jmYik56wrKOykvhH74U0gI3UTnzqVv85Mm0fU5i99/pxDX669TuMtRIa7ixMaS6aSXF81xt4Z69SiXcuSI6feFoBVK9+4kCNeu2XdtW7aQGFnK6zBMVaNShrxOnyYROX0a+Pxz4JVXnPNN214CAsonKX/rFvDbb7RSU6vJCmX2bLqROhulkkJcO3YAf/4JtGnjvHNdvUr5MaXS+tWJDl0exdTq45tvqHv+4EFg5kzqU9qyxfbS5jVrONzFPJy4VFD09iRZUCqV8PT0REBAgNV2IRkZlCOJiwM+/pi+ATurl6Qs1K5NTYFKpe2+VrYiBPDvv1RB1bgxJdWXLKG+DFeZEaal0WjcJk0oxOXr69zz/fEHlfIeOGC5/6Q4PXpQ7mjKFOPXExKovPzQIZpn8sknVNn2BasAABXnSURBVLSwcmXJkmFz3L4N7N1LoVeGedhwiaBkZmZi//79Jg0NU1JSEB8fj7CwMERHRyM4OLjE/oa9JO++65pekrLg5qbPoziq9LY42dlkyvjjj7Q6U6vpxu7qMMvatfR3MnUq8M47rhGx2FgKqcXE0BcLW4iOJgPK/Hz9v6Fr16ibfflyEmWAKrt++YWEq3t365PzGzeSaJmaPskwVR2n51ASExOxfPlypKamQq1WG4kJgKLXUlNTsXz5ciQmJha9l5+v7yUBqIdg6tSKLSY6nJGY12rJPmTIEGro+/dfuuklJ1MuwZWrNaWSBGTyZApzjRnjGjHJz6fcWatWlPxu3ty2/b29qUhg3z56XlgIDBpEvTjPPGO8bZs21Ow4ejStBK3BnnDXw2vPylQ1nLpCSUxMtHp+BwCoVKoH2wNHjrTF119TtU1iYulzSSoiCoUCEREn8M8/WUhLsz20V5wbN6hH4scfyU135EjqkTBMeOvyKK4Q2/PnKcSl61J3dojLkLg4qiA7cYLyJ/aIWI8eJMz9+pGtTL16JIym+O9/SVisEYqsLCrNjo21/Zp4VgpTFXCaoGRmZpoVk9DQUPTt2xe+vr64evUqYmNjkZubC5VKhe3b43DuXBDi4oKsmvJXUTAM7QUHA7dvq3H7Nr1nTWjPEI2Geml++AHYs4cmAq5eTd+uTd18dJVeDRo44YMZoAtxTZtG39xdfSOMjbW9XLg4PXpQwcKvv5JAHT1a+qz3atVIzPv1o7LjgIDSj/v775TDql7dvutimMqO0+ahrF27FqmpqSbf8/LywtixY7F161acPXsW3bp1Q6NGjbDUwPK1efPmGDJkiDMuzSnYshozN00xM5NG1P70E31zHjmS4vuWYvIdOwKzZtnfO2EJpZLmse/aRd3jjz/unPOYQ62mkufjxym3sWxZyRny1h6ndm3Kk+zda90wtY8/phnxGzaULqLR0bRdv362XU+tWlRw4qwSa4ZxFU7JoSgUCqSlpWHcuHHo0KEDRo0ahZiYGAwcOBASiQQtWrRAdnY2zpw5A41Gg/j4eAQEBMDPz6/oGGlpaVAoFM64PIdjb2hPly9Sq6ly6bnnqCHz2jUaYpWYSIJiTYLXWRb2AE1mfPJJKktOSiofMQGoqqtRI1oBXL5MzZr2kJtL+ahXXrFOTACqCktNJTE1xeXL9H7PnvZdE8NUBZwS8jpx4kTR4/DwcKxYsQJqtRpvvPEGIiMjUa9ePWQZZKxVKhVu374Nf39/5OTkGB2no7O+cjuIsoT2duyIw9atQVi6NAgNGpB4rFpleuqgJayxX7GH1atpFsj06dSXUZ6x/i1baIzv/v3UPGmP55hGQ0Ly5JOU1LcWT08qgHj+eeDpp0t6w61dS53x9s6IYZiqgFNWKFlZWUXVXIcPH8bdu3ehVCpx7tw5BAYGwsPDA0ql0mgfpVIJD4P/jWq1GmfOyJGcDFy6RN+OCwudcbVlY//+/aWKiZeXFwYPHow9e/Zg5syZuH79OgYNGlT0vkqlgkqVgO3baXDVG2/YJyaA42ei3L9PAqLr+xk1qnzFRAjH5E+mTCGfsUWLqMHRloBv+/Y0T+Xdd0u+t2YND9JiGKesUAzF4q7B10CVSoWaNWvi/v37qFasxrVatWooLKYYx48rsWABfZPMz6cfNzeqZKpRQ/9T1uf2Do4yDO0dOXIEERER8PX1RVpaGjZv3mwU2gOA+Ph4TJw4EX5+fsjJyYG7O+DtnYYmTRQAyjYH3pEhr7NnqYqrRQuax14ReipSUugLRWQkidusWbYfIzaWEvGJiZSfEoIq1po1s/4Y06aR5cvvv+ut6c+dozBlly62XxPDVCWcIiieFtrD5XI5IiIiip7LZDLUqVMHcrncaLuePT2xZInxvoWFeoG5e1f/Y+r5tWum3y/+WCq1T4zu3j0BjYauq7xDe7VqOUZQKlKIyxCdGaRCQf03to4NPnuWKru2btWHq3Q2LLYIiqcnFU0MGAB07UrCtGYNCXBFsv9hmPLAKYISEBCAlJSUUt9PTU1Fz5490aJFC5w7dw5dunRBVlaW0U1WKpXC38QQEw8PoE4d+nEEQlAIxJI46R5fuaJ/XrduFurWNQ7tASgK7UkkkhKFBaZCe8WF1B58falSyF7u3wfGj6cS5V277E94O4stW6ip9Z9/9KaQ1nL3LgnAF19Q2EpHjx5UtfXOO7ZdS4cOlId57z0S4NWrSWQY5mHHKYISGRmJ+Pj4Ut+/d+8e1q1bh759+6J///7IzMzE+vXrTR7H2bi50bdOT0/bbUtWrVLi/Hl6XJbQXvF8kj2UJYeiC3G1bEnhoIoQ4jIkK4tcErp0IVdpW/InQlBuqkMHWqEY0r075UM0GttXF9Onk+jOn09i/OSTtu3PMFURpwiKt7c3wsLCsHDhQqPX9+7dW/Q4PT0dixcvLvUYYWFhdnWVuxJHhfYsHcca7M2hrFxJK5Mvv6QbbkUJcRnyxx9A797UZJiQQLPprWXuXHImTkgo+dkCA6kR9Ngx20NoXl60KundG3jzzYr5e2MYV+M0L6/o6GjI7Mx2y2QydLK3jMeFBAQEQGqmdjU1NRX+/v5o0aIFJBKJydCeRGI6tGcrtq5Q7t8nAfn8c8ojjBxZcW+KuuquwkKaZWJtumn3bhKUDRtKd302NxbYEk89RSsb3SqVYR52nCYowcHB6NWrl82iousiD6oEw7gtheR0ob1u3bohJiYGwcHBJUJ7BQXAwoWR2LvXfpNAhUKBGzcO4NFHN2LVqlXYuHEjDhw4UGpjaGoq5RIUCgpxGSyiKhz37gHx8UDfvrSSaNrUOu+wK1coz7FihfkBXGURlMOHaZVz7hywebN9x2CYqoTTrFd0OMqSpKJizmLGGsLCmiM3dwgWLaJv0WPHkgmhNUlnQ+8wIQCNRu/krFs5FfcOW7GCLFS++goYMaLirkp0bNkCLFhAq41Zs2i41qJF5vdRKmlOyqBBwEcfmd82P5+s6eVy2z24xo8nC5du3cgB+t9/7SsWYesVpqrgdEEBgGvXriEhIcHkPBTDG1+nTp0qxcrEkMzMTCxfvtxq2xVDZDIZhg8fjqCgIGi1VF21aBGZFY4YQeaLDRua3tdWoe7atRd+/rktEhKoh6KymG6++SbZ0YwfD/znP8CwYfr+j9IYOZIaYX//3TrB7NSJXIV79bL+ujQa+rvZswd49FGaRa+bmGkrLChMVcElgqJDN7FRLpcXTWz09/e329a9omCrlxdgfjV2/jzw7bd0c+rRg1YtHTvqb472nE+tliEnpxdmzmxbKebJAHTTDgqiKYohIYCfHzU4BgaWvs9PPwHz5lE4ytrPOW0ahf9saZbcs4dGHicl0XOFgkR6wQISPltgQWGqCi4dAezt7V3hvbnsQScKjgrtNW0KLFxIpanLltF0Qh8fEpbOne3zDpNKVWjQIA75+UGoWbNyrAKPHKEmxMaNgVOnqInQnJgcOUJzTfbts20uTI8e1FNiC8WtVry9gaVLaVxwdDSFwhjmYcOlK5SqjrNCe1otTUVctAgICFiL0NBUk6GcqjYWYNIkqqL68ktg8WJaDRh8FCOys8nKfsECoH9/286jUlEP0oUL1vUiqVSUdzl2rOSI53ffpUbKZcusPz+vUJiqgktXKFWdoKAgDBkyxOGhPXd3qnLq0kWBefPS8N579nmHAfqxAJUhxLhli/7GnJBQckSvDrWaVguvvGK7mADk5da5MyX+Bw+2vP2uXZQ3KS4mADBjBoW+tm2zfS4Kw1R2WFCcgLNCeydOnCiaLFje3mHO5vx5atRs25bKqffto8o0U0yeTCuZ6dPtP5+ufNgaQTHnLFyjBuVxhg2jqi9edTAPE07rQ2Ecj6PGAjjCO8zZbNlCyW13d+DiRSpICA0tud3vv9PP6tVlM2e0th/l/n0ymDRXadatG137Bx/Yfz0MUxlhQalEmBsL4OHhgcLCQpd5hzkbnbswoJ9/UjxvdOYMGTtu2EAVYGWhZUsSi4sXzW+3fTvQpo354gCAKsb+/ptyXwzzsMCCUomwxjssICCg6LkzvcOcyc2bwIkT9E0foHBX587G2+TmUr5kzhzHjCR2c7NulWLtIK2aNSn0NXKkcyZpMkxFhAWlEuEI77DSxgJUJLZvJydgnVtA8QmNWi1NTuzenf50FJYEJT+fplcOGGD98fr0sc3MkmEqM5yUr0RUprEA9qJQKHDw4Ak89VQWVq1SQghPPPJIAEJCIqGbajljBlnar1vn2HN37055D60WRcUPhsTG0krJFnuV2bOp0z8uzrZOfIapjHAfSiWjrN5hFbUPRedLdv58GpRKQCbT9/BoNFJUq0Y9PDJZNN59NxhHjwIP7MkcSosWZOlvKoz27LPks/bKK7Ydc+dOCn2dPm161gz3oTBVBQ55VTKq4liAxMRELF++HKmpqdBo1EZiAgASiRpqtRqpqalISlqOOXMSnSImQOlhr5wcCr3pCgVsoXdvoGdPy0aVDFPZkUydOnVqeV8EYz0+Pj7w8vJCRkYGtFqt1fvp7F4effRRJ16d7djqSyaRaJGfnwEvLy+nGImqVMDatcBrrxm/vnIlJe5ffdW+43bpAkyYQOGvxo3pNYVCgaNHj+LWrURoNMdx8eJ53Lp1C35+fkal3gxTWeCQVyWlKowFcJRTsyPJzQWaNVNg7doTuHUrq8jpIDY2AP36RWLwYPsdBv78kxykd+3KRFLSfosWPYZjBximMsCCUomp7GMBrMkHlWZ2CTg+H6TL4yQnp0EqBYTQ/z5VKik8PYGmTct2o3/vvUT4+cXBza3yfhFgmNJgQakCVMaxAAqFAgsWLDASweJYMruUSqUYP368Qz6jK1Z8iYmJ2LkzDmq1Y8YcMExFg8uGqwCVcSzAiRMnih6PG2e/2aUjfMlszeOoVCrExcUBgNU3+sxMGjtgi5gYnisoKKhCrjIZxhAWFKZcMPQlA+wzu3SEL5nuRm9rHsfWG/3+/fvNnsNcaE+lUiEhIaFClnszjCFcNsyUC8X9xOw1uyyrL5k1N/oxY8Zg8uTJGDZsGHx9fYve093oLaFQKIryXKbw8vLC4MGDsWfPHsycORPXr1/HoEGDjLbRjR1gmIoMCwpTLhT3E7PX7LIsvmSuutHrwnvjxo1Dhw4dMGrUKMTExGDgwIGQSCRGoT2NRoP4+HgEBATAr5jjpWGYkGEqIiwoTLlgyZcMsGx2WVZfMlfd6A3De7rQ3sKFCxEQEIDIyEj4+/uXGtrTUVnGDjAPNywoTLlgjZ+YNWaXZfElc9WN3jAsZ29or/hxGKYiwoLClAve3t4ICwszu43O7LJbt26IiYlBcHCwkdllWFhYmUqGXXWjNwzLlWWOTUUfO8AwXOXFlBvR0dFIS7uAhQsXGr2+d+/eosfp6elYvHhxiX0d4Utm7kZfs2ZN3L9/3yE3+oCAAKSkpJT6vlwuR0RERNFzU3NsKsPYAYbhFQpTbgQHB6NRo15Qq20zu9Q1+5W1L8NSHseagWXW3OgtheWsCe1ZcxyGKW9YUJhy5ejRtvDw6GW1g7IjO8dddaO3FN6zFNoDyh7eYxhXwCEvptwQgoZWbdvWFnXqBLncl8zaG725gWXW3uijo6OxZMkSo54Xa0J7QMUdO8AwxWEvL6bcOHmSxummpZE1POB6XzJXOh7bavGiOwd7eTGVBRYUptyYPh24dQuYP798r8OVN/qqMHaAYUqDBYUpN9q2BebMAbp2Le8rce2NvrKPHWCY0mBBYcqFq1eBiAjgxg3AzonGDsfVN/rKOHaAYczBgsKUC//7H3DgALBiRXlfSUn4Rs8w9sGCwpQLffoAb7wBvPhieV8JwzCOggWFcTn5+UBQEJCZCfj4lPfVMAzjKLixkXE5O3cCTz3FYsIwVQ0WFMblbNkCPP98eV8FwzCOhkNejEtRq4HAQOD4caBhw/K+GoZhHAmvUBiXcuAA8MgjLCYMUxVhQWFcypYtwHPPlfdVMAzjDFhQGJehM4NkQWGYqgkLCuMyUlKAwkKAx3owTNWEBYVxGbpwl85ZmGGYqgULCuMyONzFMFUbLhtmXMKNG0Dz5oBcDnh4lPfVMAzjDHiFwriEbduA3r1ZTBimKsOCwriE2FjujmeYqg6HvBinc+8edcdfugTUrl3eV8MwjLPgFQrjdHbtoumMLCYMU7VhQWGcDptBMszDAYe8GKei0dDsk0OHgMaNy/tqGIZxJrxCYZzK4cOAvz+LCcM8DLCgME6Fw10M8/AgLe8LYKoO6ekKzJ4tR3KyBPn57qhZU4ucHA2+/tofgHd5Xx7DME6GcyhMmdm2TY5p0wpx/HggAAG1Wlb0nlSqAuCGqKgbmDLFA/36+ZfbdTIM41xYUJgyMWlSBubNC4ZKJYH5CKoWMpkGEyZkYsaMEBddHcMwroRzKIzdkJgEQaWSwfI/JXeoVDLMmxeESZMyXHB1DMO4GhYUxi62bZM/WJmUbs7VrRvNQFEogN27gUaNAJXKA/PmBeHPP7NdeLUMw7gCFhTGLqZNK3wQ5jKNnx+wcSPw3/8CdeoAiYnA2rX0nkolxZQpShddKcMwroIFhbGZ9HTFgwS8O9LTgQ8+AE6eBO7cAdasAapVAwYMAJKTgfXrgYICYOpUICICePRRAHDH8eP1kZGhKN8PwjCMQ2FBYWxm9mw5AH0tx+DBwDPPAKGhQOvWwPDhQHg4iYyOe/eACxfodUI8OA7DMFUF7kNhbCY5WWJUGrxoEXD9Oj3eupVmxstkQHaxNEluLlCzJj1Wq2VITi49ZMYwTOWDVyiMzeTnG/+zuXFD//jePaBGDeDuXcDHx3g/Hx8gP1//PC+P//kxTFWC/0czNlOzptbiNsnJlDPRUb060KQJva7Dx8fycRiGqTywoDA2Ex6uedABXzqbNgGtWlFyvlo14LPPgFOngLNn6X2pVIXwcI0LrpZhGFfBgsLYzMSJ/gDczG5z8yYwcCDw5ZfA7dtA+/bASy8ZbuH24DgMw1QV2HqFsYsnnriKo0eDYN93Ei3atcvEkSMNHX1ZDMOUI7xCYexiyhQPyGT2haxkMjWmTfN08BUxDFPesKAwdtGvnz8mTMiETFZo034yWSEmTLiGPn3qOenKGIYpL1hQGLuZMSMEEyZcg0ymAmCpYktbJCbsNswwVRPOoTBl5s8/szFlihLHj9eH6XkoQFTUDUyb5skrE4apwrCgMA4jI0M/sTEvzx0+PlqEh2swcaI/QkJ4YiPDVHVYUBiGYRiHwDkUhmEYxiGwoDAMwzAOgQWFYRiGcQgsKAzDMIxDYEFhGIZhHAILCsMwDOMQWFAYhmEYh8CCwjAMwzgEFhSGYRjGIbCgMAzDMA6BBYVhGIZxCCwoDMMwjENgQWEYhmEcAgsKwzAM4xBYUBiGYRiHwILCMAzDOAQWFIZhGMYhsKAwDMMwDoEFhWEYhnEILCgMwzCMQ2BBYRiGYRwCCwrDMAzjEP4ffTIC8Z7tIdgAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 504x504 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from deepsnap.dataset import GraphDataset\n",
    "\n",
    "dataset = GraphDataset([hete], task='node')\n",
    "# Splitting the dataset\n",
    "dataset_train, dataset_val, dataset_test = dataset.split(transductive=True, split_ratio=[0.4, 0.3, 0.3])\n",
    "titles = ['Train', 'Validation', 'Test']\n",
    "\n",
    "for i, dataset in enumerate([dataset_train, dataset_val, dataset_test]):\n",
    "  n0 = hete._convert_to_graph_index(dataset[0].node_label_index['n0'], 'n0').tolist()\n",
    "  n1 = hete._convert_to_graph_index(dataset[0].node_label_index['n1'], 'n1').tolist()\n",
    "\n",
    "  plt.figure(figsize=(7, 7))\n",
    "  plt.title(titles[i])\n",
    "  nx.draw(G_orig, pos=pos, node_color=\"grey\", edge_color=colors, labels=labels, font_color='white')\n",
    "  nx.draw_networkx_nodes(G_orig.subgraph(n0), pos=pos, node_color=\"blue\")\n",
    "  nx.draw_networkx_nodes(G_orig.subgraph(n1), pos=pos, node_color=\"red\")\n",
    "  show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "e5LsVSRuI3hU"
   },
   "source": [
    "# 2 Heterogeneous Graph Node Property Prediction\n",
    "\n",
    "In this part we will use PyTorch Geometric and DeepSNAP to implement a GNN model for heterogeneous graph node property prediction (node classification). This part of Colab requires you having good understandings on the heterogeneous graph and how to implement the GNN layers by using PyG.\n",
    "\n",
    "At first let's take look at the general structure of a heterogeneous layer by an example.\n",
    "\n",
    "Let's assume we have a graph $G$, which contains two node types $a$ and $b$, and three message types $m_1=(a, r_1, a)$, $m_2=(a, r_2, b)$ and $m_3=(a, r_3, b)$.\n",
    "\n",
    "Thus, for $G$ a heterogeneous layer will contains three Heterogeneous GNN layers (`HeteroGNNConv` in this Colab) where each `HeteroGNNConv` layer will perform the message passing and aggregation with respect to only one message type. The overview of the heterogeneous layer is shown below:\n",
    "\n",
    "<br/>\n",
    "<center>\n",
    "<img src=\"https://web.stanford.edu/class/cs224w/images/colab4/hetero_conv.png\"/>\n",
    "</center>\n",
    "<br/>\n",
    "\n",
    "In this Colab, all the $l^{th}$ Heterogeneous GNN layers will be managed by a ($l^{th}$) Heterogeneous GNN Wrapper layer (the `HeteroGNNWrapperConv`). The $l^{th}$ Heterogeneous GNN Wrapper layer will take in the input node embeddings from $(l-1)^{th}$ layer and aggregate (across message types) the Heterogeneous GNN layers' results. For example, the wrapper layer will aggregate node type $b$'s node embeddings from Heterogeneous GNN layers for $m_2$ and $m_3$. The \"simplified\" heterogeneous layer structure is shown below:\n",
    "\n",
    "<br/>\n",
    "<center>\n",
    "<img src=\"http://web.stanford.edu/class/cs224w/images/colab4/hetero_conv_1.png\"/>\n",
    "</center>\n",
    "<br/>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "rOTCyuRcJikS"
   },
   "source": [
    "<font color='red'>We recommend you implement the heterogeneous GNN model in following steps:</font>\n",
    "\n",
    "1. Implement the `HeteroGNNConv` first.\n",
    "2. Implement the `mean` aggregation in `HeteroGNNWrapperConv`.\n",
    "3. Implement the `generate_convs`.\n",
    "4. Implement the `HeteroGNN` model and the `train` function.\n",
    "5. Train the model with `mean` aggregation across the message types and make sure your model has reasonable performance.\n",
    "6. Implement the `attn` aggregation in `HeteroGNNWrapperConv`.\n",
    "7. Train the model with `attn` aggregation across the message types and make sure your model has reasonable performance."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#上面第二个最后的单词是HeteroGNNConv吗？"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "pkFjcktiJJLm"
   },
   "source": [
    "## Setup"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {
    "id": "NAm9_OcJJJ-W"
   },
   "outputs": [],
   "source": [
    "import copy\n",
    "import torch\n",
    "import deepsnap\n",
    "import numpy as np\n",
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "import torch_geometric.nn as pyg_nn\n",
    "\n",
    "from sklearn.metrics import f1_score\n",
    "from deepsnap.hetero_gnn import forward_op\n",
    "from deepsnap.hetero_graph import HeteroGraph\n",
    "from torch_sparse import SparseTensor, matmul"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "n2prITo3JSbo"
   },
   "source": [
    "## Dataset\n",
    "\n",
    "ACM dataset has been contained!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "VBlboS5kJmJL"
   },
   "source": [
    "## Heterogeneous GNN Layer\n",
    "\n",
    "Now let's start working on our own implementation of a heterogeneous layer (the `HeteroGNNConv`)! Similar to what we did in Colab 3, we will implement the layer using PyTorch Geometric. In general, our heterogeneous GNN layer draws ideas from the **GraphSAGE** ([Hamilton et al. (2017)](https://arxiv.org/abs/1706.02216)).\n",
    "\n",
    "At first, let's implement the GNN layer for each message type :\n",
    "\n",
    "\\begin{equation}\n",
    "m =(s, r, d)\n",
    "\\end{equation}\n",
    "\n",
    "Each message type is a tuple containing three elements where $s$ refers to the source node type, $r$ refers to the edge (relation) type and $d$ refers to the destination node type. The update rule is very similar to that of GraphSAGE but we need to include the node types and the edge type. The update rule is described as below:\n",
    "\n",
    "\\begin{equation}\n",
    "h_v^{(l)[m]} = W^{(l)[m]} \\cdot \\text{CONCAT} \\Big( W_d^{(l)[m]} \\cdot h_v^{(l-1)}, W_s^{(l)[m]} \\cdot AGG(\\{h_u^{(l-1)}, \\forall u \\in N_{m}(v) \\})\\Big)\n",
    "\\end{equation}\n",
    "\n",
    "where $[m]$ indicates that the weight matrices or embeddings with respect to message type $m$, $W_s^{(l)[m]}$ computes the messages from neighboring nodes, $W_d^{(l)[m]}$ compute messages from the node itself, and $W^{(l)[m]}$ aggregates messages from both node types. In the equation above, $v$ has the node type $d$, and $u$ has the node type $s$.\n",
    "\n",
    "For simplicity, we use mean aggregations for $AGG$ where:\n",
    "\n",
    "\\begin{equation}\n",
    "AGG(\\{h_u^{(l-1)}, \\forall u \\in N_{m}(v) \\}) = \\frac{1}{|N_{m}(v)|} \\sum_{u\\in N_{m}(v)} h_u^{(l-1)}\n",
    "\\end{equation}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {
    "id": "_Z1b0Mf8Jova"
   },
   "outputs": [],
   "source": [
    "class HeteroGNNConv(pyg_nn.MessagePassing):\n",
    "    def __init__(self, in_channels_src, in_channels_dst, out_channels):\n",
    "        super(HeteroGNNConv, self).__init__(aggr=\"mean\")\n",
    "\n",
    "        self.in_channels_src = in_channels_src\n",
    "        self.in_channels_dst = in_channels_dst\n",
    "        self.out_channels = out_channels\n",
    "\n",
    "        # To simplify implementation, please initialize both self.lin_dst\n",
    "        # and self.lin_src out_features to out_channels\n",
    "        self.lin_dst = None\n",
    "        self.lin_src = None\n",
    "\n",
    "        self.lin_update = None\n",
    "\n",
    "        ############# Your code here #############\n",
    "        ## (~3 lines of code)\n",
    "        self.lin_dst=nn.Linear(in_channels_dst,out_channels)  #concat左\n",
    "        self.lin_src=nn.Linear(in_channels_src,out_channels)  #concat右\n",
    "        self.lin_update=nn.Linear(out_channels*2,out_channels)  #𝑊(𝑙)[𝑚]\n",
    "\n",
    "        ##########################################\n",
    "\n",
    "    def forward(\n",
    "        self,\n",
    "        node_feature_src,\n",
    "        node_feature_dst,\n",
    "        edge_index,\n",
    "        size=None,\n",
    "        res_n_id=None,\n",
    "    ):\n",
    "        ############# Your code here #############\n",
    "        ## (~1 line of code)\n",
    "        return self.propagate(edge_index,size=size,\n",
    "                              node_feature_src=node_feature_src,node_feature_dst=node_feature_dst,res_n_id=res_n_id)\n",
    "    #？反正感觉就是把所有参数都传递过去吧\n",
    "\n",
    "        ##########################################\n",
    "\n",
    "    def message_and_aggregate(self, edge_index, node_feature_src):\n",
    "\n",
    "        ############# Your code here #############\n",
    "        ## (~1 line of code)\n",
    "        ## Note:\n",
    "        ## 1. Different from what we implemented in Colab 3, we use message_and_aggregate\n",
    "        ## to replace the message and aggregate. The benefit is that we can avoid\n",
    "        ## materializing x_i and x_j, and make the implementation more efficient.\n",
    "        ## 2. To implement efficiently, following PyG documentation is helpful:\n",
    "        ## https://pytorch-geometric.readthedocs.io/en/latest/notes/sparse_tensor.html\n",
    "        ## 3. Here edge_index is torch_sparse SparseTensor.\n",
    "        out=matmul(edge_index,node_feature_src,reduce=self.aggr)  #adj_t,x,reduce='mean'\n",
    "\n",
    "        ##########################################\n",
    "\n",
    "        return out\n",
    "\n",
    "    def update(self, aggr_out, node_feature_dst, res_n_id):\n",
    "\n",
    "        ############# Your code here #############\n",
    "        ## (~4 lines of code)\n",
    "        aggr_out=self.lin_src(aggr_out)\n",
    "        node_feature_dst=self.lin_dst(node_feature_dst)\n",
    "        concat_features = torch.cat((node_feature_dst, aggr_out),dim=-1)\n",
    "        aggr_out = self.lin_update(concat_features)\n",
    "        #我直接抄的答案，我自己写不出来。但是我倒是能看懂……反正就是这么个意思\n",
    "\n",
    "        ##########################################\n",
    "\n",
    "        return aggr_out"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "torch.Size([7, 68])"
      ]
     },
     "execution_count": 95,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#PRW\n",
    "x1=torch.randn(7, 34)\n",
    "x2=torch.randn(7, 34)\n",
    "x3=torch.cat((x1,x2),dim=-1)\n",
    "x3.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "aKq8ScTiJthn"
   },
   "source": [
    "## Heterogeneous GNN Wrapper Layer\n",
    "\n",
    "After implementing the GNN layer for each message type, we need to somehow aggregate the the node embedding results (with respect to each message types) together. Here we will implement two types of message type level aggregation.\n",
    "\n",
    "The first one is simply the mean aggregation:\n",
    "\n",
    "\\begin{equation}\n",
    "h_v^{(l)} = \\frac{1}{M}\\sum_{m=1}^{M}h_v^{(l)[m]}\n",
    "\\end{equation}\n",
    "\n",
    "Here node $v$ has the node type $d$ and $M$ is the total number of message types that the destination node type is $d$.\n",
    "\n",
    "The other one is the semantic level attention introduced in **HAN** ([Wang et al. (2019)](https://arxiv.org/abs/1903.07293)). Instead of directly averaging on the message type aggregation results, we use attention to learn which message type result can be more important, then aggregate from all the message types. Following are the equations for semantic level attention:\n",
    "\n",
    "\\begin{equation}\n",
    "e_{m} = \\frac{1}{|V_{d}|} \\sum_{v \\in V_{d}} q_{attn}^T \\cdot tanh \\Big( W_{attn}^{(l)} \\cdot h_v^{(l)[m]} + b \\Big)\n",
    "\\end{equation}\n",
    "\n",
    "where $m$ refers to message type and $d$ refers to the destination node type. Then we can compute the attention and update the $h_v^{(l)}$:\n",
    "\n",
    "\\begin{equation}\n",
    "\\alpha_{m} = \\frac{\\exp(e_{m})}{\\sum_{m=1}^M \\exp(e_{m})}\n",
    "\\end{equation}\n",
    "\n",
    "\\begin{equation}\n",
    "h_v^{(l)} = \\sum_{m=1}^{M} \\alpha_{m} \\cdot h_v^{(l)[m]}\n",
    "\\end{equation}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [],
   "source": [
    "#PRW\n",
    "#q^T_{attn}是那个q_semantic_attention？\n",
    "#2021.5.8 18:16完全参考：https://github.com/snap-stanford/deepsnap/blob/master/examples/node_classification_hetero/node_classification_acm.py\n",
    "#如果跑不动就去抄答案"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {
    "id": "0_bun02xJwFm"
   },
   "outputs": [],
   "source": [
    "class HeteroGNNWrapperConv(deepsnap.hetero_gnn.HeteroConv):\n",
    "    #文档：https://snap.stanford.edu/deepsnap/modules/hetero_gnn.html\n",
    "    def __init__(self, convs, args, aggr=\"mean\"):\n",
    "        super(HeteroGNNWrapperConv, self).__init__(convs, None)\n",
    "        self.aggr = aggr\n",
    "\n",
    "        # Map the index and message type\n",
    "        self.mapping = {}\n",
    "\n",
    "        # A numpy array that stores the final attention probability\n",
    "        self.alpha = None\n",
    "\n",
    "        self.attn_proj = None\n",
    "\n",
    "        if self.aggr == \"attn\":\n",
    "            ############# Your code here #############\n",
    "            ## (~1 line of code)\n",
    "            ## Note:\n",
    "            ## 1. Initialize self.attn_proj here.\n",
    "            ## 2. You should use nn.Sequential for self.attn_proj\n",
    "            ## 3. nn.Linear and nn.Tanh are useful.\n",
    "            ## 4. You can create a vector parameter by using:\n",
    "            ## nn.Linear(some_size, 1, bias=False)\n",
    "            ## 5. The first linear layer should have out_features as args['attn_size']\n",
    "            ## 6. You can assume we only have one \"head\" for the attention.\n",
    "            ## 7. We recommend you to implement the mean aggregation first. After \n",
    "            ## the mean aggregation works well in the training, then you can \n",
    "            ## implement this part.\n",
    "            self.attn_proj = nn.Sequential(\n",
    "                nn.Linear(args['hidden_size'], args['attn_size']),  #Wh+b\n",
    "                nn.Tanh(),\n",
    "                nn.Linear(args['attn_size'], 1, bias=False), # q_semantic_attention\n",
    "            )\n",
    "\n",
    "            ##########################################\n",
    "    \n",
    "    def reset_parameters(self):\n",
    "        super(HeteroConvWrapper, self).reset_parameters()\n",
    "        if self.aggr == \"attn\":\n",
    "            for layer in self.attn_proj.children():\n",
    "                layer.reset_parameters()\n",
    "    \n",
    "    def forward(self, node_features, edge_indices):\n",
    "        message_type_emb = {}\n",
    "        for message_key, message_type in edge_indices.items():\n",
    "            src_type, edge_type, dst_type = message_key\n",
    "            node_feature_src = node_features[src_type]\n",
    "            node_feature_dst = node_features[dst_type]\n",
    "            edge_index = edge_indices[message_key]\n",
    "            message_type_emb[message_key] = (\n",
    "                self.convs[message_key](\n",
    "                    node_feature_src,\n",
    "                    node_feature_dst,\n",
    "                    edge_index,\n",
    "                )\n",
    "            )\n",
    "        node_emb = {dst: [] for _, _, dst in message_type_emb.keys()}\n",
    "        mapping = {}        \n",
    "        for (src, edge_type, dst), item in message_type_emb.items():\n",
    "            mapping[len(node_emb[dst])] = (src, edge_type, dst)\n",
    "            node_emb[dst].append(item)\n",
    "        self.mapping = mapping\n",
    "        for node_type, embs in node_emb.items():\n",
    "            if len(embs) == 1:\n",
    "                node_emb[node_type] = embs[0]\n",
    "            else:\n",
    "                node_emb[node_type] = self.aggregate(embs)\n",
    "        return node_emb\n",
    "    \n",
    "    def aggregate(self, xs):\n",
    "        # TODO: Implement this function that aggregates all message type results.\n",
    "        # Here, xs is a list of tensors (embeddings) with respect to message \n",
    "        # type aggregation results.\n",
    "\n",
    "        if self.aggr == \"mean\":\n",
    "\n",
    "            ############# Your code here #############\n",
    "            ## (~2 lines of code)\n",
    "            x = torch.stack(xs, dim=-1)\n",
    "            return x.mean(dim=-1)\n",
    "            #答案写法：out = torch.mean(torch.stack(xs), dim=0)\n",
    "            #return out\n",
    "\n",
    "            ##########################################\n",
    "\n",
    "        elif self.aggr == \"attn\":\n",
    "\n",
    "            ############# Your code here #############\n",
    "            ## (~10 lines of code)\n",
    "            ## Note:\n",
    "            ## 1. Store the value of attention alpha (as a numpy array) to self.alpha,\n",
    "            ## which has the shape (len(xs), ) self.alpha will be not be used \n",
    "            ## to backpropagate etc. in the model. We will use it to see how much \n",
    "            ## attention the layer pays on different message types.\n",
    "            ## 2. torch.softmax and torch.cat are useful.\n",
    "            ## 3. You might need to reshape the tensors by using the \n",
    "            ## `view()` function https://pytorch.org/docs/stable/tensor_view.html\n",
    "            N = xs[0].shape[0] # Number of nodes for that node type\n",
    "            M = len(xs) # Number of message types for that node type\n",
    "\n",
    "            x = torch.cat(xs, dim=0).view(M, N, -1) # M * N * D\n",
    "            z = self.attn_proj(x).view(M, N) # M * N * 1\n",
    "            z = z.mean(1) # M * 1\n",
    "            alpha = torch.softmax(z, dim=0) # M * 1\n",
    "\n",
    "            # Store the attention result to self.alpha as np array\n",
    "            self.alpha = alpha.view(-1).data.cpu().numpy()\n",
    "  \n",
    "            alpha = alpha.view(M, 1, 1)\n",
    "            x = x * alpha\n",
    "            return x.sum(dim=0)\n",
    "            #答案写法：x = self.attn_proj(torch.stack(xs, dim=0))\n",
    "            #x = torch.mean(x, dim=1)\n",
    "\n",
    "            #self.alpha = torch.softmax(x, dim=0)\n",
    "            #self.alpha = self.alpha.detach()\n",
    "\n",
    "            #out = torch.stack(xs, dim=0)\n",
    "            #out = self.alpha.unsqueeze(-1) * out\n",
    "\n",
    "            #out = torch.sum(out, dim=0)\n",
    "            #return out\n",
    "\n",
    "            ##########################################"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "tn_pnCOKJw-d"
   },
   "source": [
    "## Initialize Heterogeneous GNN Layers\n",
    "\n",
    "Now let's initialize the Heterogeneous GNN Layers. Different from homogeneous graph case, heterogeneous case can be a little bit complex.\n",
    "\n",
    "In general, we need to create a dictionary of `HeteroGNNConv` layers where the keys are message types.\n",
    "\n",
    "* To get all message types, `deepsnap.hetero_graph.HeteroGraph.message_types` is useful.\n",
    "* If we are initializing the first conv layers, we need to get the feature dimension of each node type. Using `deepsnap.hetero_graph.HeteroGraph.num_node_features(node_type)` will return the node feature dimension of `node_type`. In this function, we will set each `HeteroGNNConv` `out_channels` to be `hidden_size`.\n",
    "* If we are not initializing the first conv layers, all node types will have the same embedding dimension `hidden_size` and we still set `HeteroGNNConv` `out_channels` to be `hidden_size` for simplicity.\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'deepsnap.hetero_graph.HeteroGraph'>\n"
     ]
    }
   ],
   "source": [
    "#PRW\n",
    "print(type(hete))\n",
    "#hete.num_node_features()  #会报错。应该是因为feature是list而不是tensor？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {
    "id": "hSBImHClJzf4"
   },
   "outputs": [],
   "source": [
    "def generate_convs(hetero_graph, conv, hidden_size, first_layer=False):\n",
    "    # TODO: Implement this function that returns a dictionary of `HeteroGNNConv` \n",
    "    # layers where the keys are message types. `hetero_graph` is deepsnap `HeteroGraph`\n",
    "    # object and the `conv` is the `HeteroGNNConv`.\n",
    "\n",
    "    convs = {}\n",
    "\n",
    "    ############# Your code here #############\n",
    "    ## (~9 lines of code)\n",
    "    for message_type in hetero_graph.message_types:\n",
    "        if first_layer is True:\n",
    "            src_type = message_type[0]\n",
    "            dst_type = message_type[2]\n",
    "            src_size = hetero_graph.num_node_features(src_type)\n",
    "            dst_size = hetero_graph.num_node_features(dst_type)\n",
    "            convs[message_type] = conv(src_size,dst_size, hidden_size)\n",
    "        else:\n",
    "            convs[message_type] = conv(hidden_size, hidden_size, hidden_size)    \n",
    "\n",
    "    ##########################################\n",
    "    \n",
    "    return convs"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "U39dX8EpJ3FG"
   },
   "source": [
    "## HeteroGNN\n",
    "\n",
    "Now we will make a simple HeteroGNN model which contains only two `HeteroGNNWrapperConv` layers.\n",
    "\n",
    "For the forward function in `HeteroGNN`, the model is going to be run as following:\n",
    "\n",
    "$\\text{self.convs1} \\rightarrow \\text{self.bns1} \\rightarrow \\text{self.relus1} \\rightarrow \\text{self.convs2} \\rightarrow \\text{self.bns2} \\rightarrow \\text{self.relus2} \\rightarrow \\text{self.post_mps}$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {
    "id": "rplknA8aJ6J5"
   },
   "outputs": [],
   "source": [
    "class HeteroGNN(torch.nn.Module):\n",
    "    def __init__(self, hetero_graph, args, aggr=\"mean\"):\n",
    "        super(HeteroGNN, self).__init__()\n",
    "\n",
    "        self.aggr = aggr\n",
    "        self.hidden_size = args['hidden_size']\n",
    "\n",
    "        self.convs1 = None\n",
    "        self.convs2 = None\n",
    "\n",
    "        self.bns1 = nn.ModuleDict()\n",
    "        self.bns2 = nn.ModuleDict()\n",
    "        self.relus1 = nn.ModuleDict()\n",
    "        self.relus2 = nn.ModuleDict()\n",
    "        self.post_mps = nn.ModuleDict()\n",
    "\n",
    "        ############# Your code here #############\n",
    "        ## (~10 lines of code)\n",
    "        ## Note:\n",
    "        ## 1. For self.convs1 and self.convs2, call generate_convs at first and then\n",
    "        ## pass the returned dictionary of `HeteroGNNConv` to `HeteroGNNWrapperConv`.\n",
    "        ## 2. For self.bns, self.relus and self.post_mps, the keys are node_types.\n",
    "        ## `deepsnap.hetero_graph.HeteroGraph.node_types` will be helpful.\n",
    "        ## 3. Initialize all batchnorms to torch.nn.BatchNorm1d(hidden_size, eps=1.0).\n",
    "        ## 4. Initialize all relus to nn.LeakyReLU().\n",
    "        ## 5. For self.post_mps, each value in the ModuleDict is a linear layer \n",
    "        ## where the `out_features` is the number of classes for that node type.\n",
    "        ## `deepsnap.hetero_graph.HeteroGraph.num_node_labels(node_type)` will be\n",
    "        ## useful.\n",
    "        convs1 = generate_convs(hetero_graph, HeteroGNNConv, self.hidden_size, first_layer=True)\n",
    "        convs2 = generate_convs(hetero_graph, HeteroGNNConv, self.hidden_size)\n",
    "\n",
    "        self.convs1 = HeteroGNNWrapperConv(convs1, args, aggr=self.aggr)\n",
    "        self.convs2 = HeteroGNNWrapperConv(convs2, args, aggr=self.aggr)\n",
    "\n",
    "        for node_type in hetero_graph.node_types:\n",
    "            self.bns1[node_type] = torch.nn.BatchNorm1d(self.hidden_size, eps=1)\n",
    "            self.bns2[node_type] = torch.nn.BatchNorm1d(self.hidden_size, eps=1)\n",
    "            self.post_mps[node_type] = nn.Linear(self.hidden_size, hetero_graph.num_node_labels(node_type))\n",
    "            self.relus1[node_type] = nn.LeakyReLU()\n",
    "            self.relus2[node_type] = nn.LeakyReLU()\n",
    "\n",
    "        ##########################################\n",
    "\n",
    "    def forward(self, node_feature, edge_index):\n",
    "        # TODO: Implement the forward function. Notice that `node_feature` is \n",
    "        # a dictionary of tensors where keys are node types and values are \n",
    "        # corresponding feature tensors. The `edge_index` is a dictionary of \n",
    "        # tensors where keys are message types and values are corresponding\n",
    "        # edge index tensors (with respect to each message type).\n",
    "\n",
    "        x = node_feature\n",
    "\n",
    "        ############# Your code here #############\n",
    "        ## (~7 lines of code)\n",
    "        ## Note:\n",
    "        ## 1. `deepsnap.hetero_gnn.forward_op` can be helpful.\n",
    "        x = self.convs1(x, edge_index)\n",
    "        x = forward_op(x, self.bns1)\n",
    "        x = forward_op(x, self.relus1)\n",
    "        x = self.convs2(x, edge_index)\n",
    "        x = forward_op(x, self.bns2)\n",
    "        x = forward_op(x, self.relus2)\n",
    "        x = forward_op(x, self.post_mps)\n",
    "\n",
    "        ##########################################\n",
    "        \n",
    "        return x\n",
    "\n",
    "    def loss(self, preds, y, indices):\n",
    "        \n",
    "        loss = 0\n",
    "        loss_func = F.cross_entropy\n",
    "\n",
    "        ############# Your code here #############\n",
    "        ## (~3 lines of code)\n",
    "        ## Note:\n",
    "        ## 1. For each node type in preds, accumulate computed loss to `loss`\n",
    "        ## 2. Loss need to be computed with respect to the given index\n",
    "        for node_type in preds:\n",
    "            idx = indices[node_type]\n",
    "            loss += loss_func(preds[node_type][idx], y[node_type][idx])\n",
    "\n",
    "        ##########################################\n",
    "\n",
    "        return loss"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "o9e7q_hUJ8zB"
   },
   "source": [
    "## Training and Testing\n",
    "\n",
    "Here we provide you with the functions to train and test. You only need to implement one line of code here.\n",
    "\n",
    "**Please do not modify other parts in `train` and `test` for grading purposes.**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {
    "id": "CI5Hl_5TJ_YL"
   },
   "outputs": [],
   "source": [
    "def train(model, optimizer, hetero_graph, train_idx):\n",
    "    model.train()\n",
    "    optimizer.zero_grad()\n",
    "    preds = model(hetero_graph.node_feature, hetero_graph.edge_index)\n",
    "\n",
    "    loss = None\n",
    "\n",
    "    ############# Your code here #############\n",
    "    ## Note:\n",
    "    ## 1. `deepsnap.hetero_graph.HeteroGraph.node_label` is useful\n",
    "    ## 2. Compute the loss here\n",
    "    loss = model.loss(preds, hetero_graph.node_label, train_idx)\n",
    "\n",
    "    ##########################################\n",
    "\n",
    "    loss.backward()\n",
    "    optimizer.step()\n",
    "    return loss.item()\n",
    "\n",
    "def test(model, graph, indices, best_model=None, best_val=0):\n",
    "    model.eval()\n",
    "    accs = []\n",
    "    for index in indices:\n",
    "        preds = model(graph.node_feature, graph.edge_index)\n",
    "        num_node_types = 0\n",
    "        micro = 0\n",
    "        macro = 0\n",
    "        for node_type in preds:\n",
    "            idx = index[node_type]\n",
    "            pred = preds[node_type][idx]\n",
    "            pred = pred.max(1)[1]\n",
    "            label_np = graph.node_label[node_type][idx].cpu().numpy()\n",
    "            pred_np = pred.cpu().numpy()\n",
    "            micro = f1_score(label_np, pred_np, average='micro')\n",
    "            macro = f1_score(label_np, pred_np, average='macro')\n",
    "            num_node_types += 1\n",
    "        # Averaging f1 score might not make sense, but in our example we only\n",
    "        # have one node type\n",
    "        micro /= num_node_types\n",
    "        macro /= num_node_types\n",
    "        accs.append((micro, macro))\n",
    "    if accs[1][0] > best_val:\n",
    "        best_val = accs[1][0]\n",
    "        best_model = copy.deepcopy(model)\n",
    "    return accs, best_model, best_val"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {
    "id": "DpNz9B5AKBUU"
   },
   "outputs": [],
   "source": [
    "# Please do not change the following parameters\n",
    "args = {\n",
    "    'device': torch.device('cuda' if torch.cuda.is_available() else 'cpu'),\n",
    "    'hidden_size': 64,\n",
    "    'epochs': 100,\n",
    "    'weight_decay': 1e-5,\n",
    "    'lr': 0.003,\n",
    "    'attn_size': 32,\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "pRHbWD4hKED8"
   },
   "source": [
    "## Dataset and Preprocessing\n",
    "\n",
    "In the next, we will load the data and create a tensor backend (without a NetworkX graph) `deepsnap.hetero_graph.HeteroGraph` object.\n",
    "\n",
    "We will use the `ACM(3025)` dataset in our node property prediction task, which is proposed in **HAN** ([Wang et al. (2019)](https://arxiv.org/abs/1903.07293)) and our dataset is extracted from [DGL](https://www.dgl.ai/)'s [ACM.mat](https://data.dgl.ai/dataset/ACM.mat).\n",
    "\n",
    "The original ACM dataset has three node types and two edge (relation) types. For simplicity, we simplify the heterogeneous graph to one node type and two edge types (shown below). This means that in our heterogeneous graph, we have one node type (paper) and two message types (paper, author, paper) and (paper, subject, paper).\n",
    "\n",
    "<br/>\n",
    "<center>\n",
    "<img src=\"http://web.stanford.edu/class/cs224w/images/colab4/cs224w-acm.png\"/>\n",
    "</center>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {
    "id": "lJy03_IsKGh6"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Device: cuda\n",
      "ACM heterogeneous graph: {'paper': 3025} nodes, {('paper', 'author', 'paper'): 26256, ('paper', 'subject', 'paper'): 2207736} edges\n",
      "SparseTensor(row=tensor([   0,    0,    0,  ..., 3024, 3024, 3024], device='cuda:0'),\n",
      "             col=tensor([   8,   20,   51,  ..., 2948, 2983, 2991], device='cuda:0'),\n",
      "             size=(3025, 3025), nnz=26256, density=0.29%)\n",
      "SparseTensor(row=tensor([   0,    0,    0,  ..., 3024, 3024, 3024], device='cuda:0'),\n",
      "             col=tensor([  75,  434,  534,  ..., 3020, 3021, 3022], device='cuda:0'),\n",
      "             size=(3025, 3025), nnz=2207736, density=24.13%)\n"
     ]
    }
   ],
   "source": [
    "print(\"Device: {}\".format(args['device']))\n",
    "\n",
    "# Load the data\n",
    "data = torch.load(\"acm.pkl\")\n",
    "\n",
    "# Message types\n",
    "message_type_1 = (\"paper\", \"author\", \"paper\")\n",
    "message_type_2 = (\"paper\", \"subject\", \"paper\")\n",
    "\n",
    "# Dictionary of edge indices\n",
    "edge_index = {}\n",
    "edge_index[message_type_1] = data['pap']\n",
    "edge_index[message_type_2] = data['psp']\n",
    "\n",
    "# Dictionary of node features\n",
    "node_feature = {}\n",
    "node_feature[\"paper\"] = data['feature']\n",
    "\n",
    "# Dictionary of node labels\n",
    "node_label = {}\n",
    "node_label[\"paper\"] = data['label']\n",
    "\n",
    "# Load the train, validation and test indices\n",
    "train_idx = {\"paper\": data['train_idx'].to(args['device'])}\n",
    "val_idx = {\"paper\": data['val_idx'].to(args['device'])}\n",
    "test_idx = {\"paper\": data['test_idx'].to(args['device'])}\n",
    "\n",
    "# Construct a deepsnap tensor backend HeteroGraph\n",
    "hetero_graph = HeteroGraph(\n",
    "    node_feature=node_feature,\n",
    "    node_label=node_label,\n",
    "    edge_index=edge_index,\n",
    "    directed=True\n",
    ")\n",
    "\n",
    "print(f\"ACM heterogeneous graph: {hetero_graph.num_nodes()} nodes, {hetero_graph.num_edges()} edges\")\n",
    "\n",
    "# Node feature and node label to device\n",
    "for key in hetero_graph.node_feature:\n",
    "    hetero_graph.node_feature[key] = hetero_graph.node_feature[key].to(args['device'])\n",
    "for key in hetero_graph.node_label:\n",
    "    hetero_graph.node_label[key] = hetero_graph.node_label[key].to(args['device'])\n",
    "\n",
    "# Edge_index to sparse tensor and to device\n",
    "for key in hetero_graph.edge_index:\n",
    "    edge_index = hetero_graph.edge_index[key]\n",
    "    adj = SparseTensor(row=edge_index[0], col=edge_index[1], sparse_sizes=(hetero_graph.num_nodes('paper'), hetero_graph.num_nodes('paper')))\n",
    "    hetero_graph.edge_index[key] = adj.t().to(args['device'])\n",
    "print(hetero_graph.edge_index[message_type_1])\n",
    "print(hetero_graph.edge_index[message_type_2])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "hrmU5-QQKJv6"
   },
   "source": [
    "## Start Training!\n",
    "\n",
    "Now lets start training!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "y0HplV9hKMkc"
   },
   "source": [
    "## Training the Mean Aggregation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {
    "id": "ZgwfyzLbKOUw"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1: loss 1.09913, train micro 38.17%, train macro 25.67%, valid micro 33.33%, valid macro 16.79%, test micro 35.95%, test macro 18.68%\n",
      "Epoch 2: loss 1.09191, train micro 37.67%, train macro 25.36%, valid micro 33.33%, valid macro 16.71%, test micro 35.95%, test macro 18.19%\n",
      "Epoch 3: loss 1.0662, train micro 66.0%, train macro 57.33%, valid micro 62.0%, valid macro 52.06%, test micro 56.94%, test macro 47.8%\n",
      "Epoch 4: loss 1.0129, train micro 67.67%, train macro 58.09%, valid micro 65.67%, valid macro 54.83%, test micro 64.61%, test macro 54.03%\n",
      "Epoch 5: loss 0.91924, train micro 67.67%, train macro 57.85%, valid micro 66.33%, valid macro 55.31%, test micro 65.18%, test macro 54.34%\n",
      "Epoch 6: loss 0.77778, train micro 68.5%, train macro 59.43%, valid micro 66.0%, valid macro 55.0%, test micro 65.46%, test macro 54.53%\n",
      "Epoch 7: loss 0.60009, train micro 69.67%, train macro 61.5%, valid micro 66.67%, valid macro 56.45%, test micro 65.46%, test macro 54.44%\n",
      "Epoch 8: loss 0.42326, train micro 72.33%, train macro 66.33%, valid micro 67.0%, valid macro 57.16%, test micro 65.51%, test macro 54.47%\n",
      "Epoch 9: loss 0.285, train micro 74.67%, train macro 70.12%, valid micro 68.0%, valid macro 59.14%, test micro 65.55%, test macro 54.69%\n",
      "Epoch 10: loss 0.19381, train micro 78.17%, train macro 75.27%, valid micro 71.0%, valid macro 64.77%, test micro 65.98%, test macro 55.53%\n",
      "Epoch 11: loss 0.1359, train micro 85.83%, train macro 84.94%, valid micro 78.67%, valid macro 76.48%, test micro 67.76%, test macro 58.88%\n",
      "Epoch 12: loss 0.09709, train micro 92.67%, train macro 92.49%, valid micro 85.33%, valid macro 84.59%, test micro 69.98%, test macro 63.23%\n",
      "Epoch 13: loss 0.07008, train micro 96.17%, train macro 96.13%, valid micro 89.67%, valid macro 89.4%, test micro 73.04%, test macro 68.36%\n",
      "Epoch 14: loss 0.0516, train micro 98.0%, train macro 97.99%, valid micro 92.0%, valid macro 91.82%, test micro 75.81%, test macro 72.66%\n",
      "Epoch 15: loss 0.03914, train micro 98.83%, train macro 98.83%, valid micro 93.0%, valid macro 92.85%, test micro 78.64%, test macro 76.53%\n",
      "Epoch 16: loss 0.03072, train micro 99.17%, train macro 99.17%, valid micro 94.33%, valid macro 94.23%, test micro 80.99%, test macro 79.59%\n",
      "Epoch 17: loss 0.0247, train micro 99.17%, train macro 99.17%, valid micro 96.67%, valid macro 96.64%, test micro 82.87%, test macro 81.89%\n",
      "Epoch 18: loss 0.02032, train micro 99.5%, train macro 99.5%, valid micro 97.67%, valid macro 97.66%, test micro 83.91%, test macro 83.15%\n",
      "Epoch 19: loss 0.01711, train micro 99.83%, train macro 99.83%, valid micro 97.67%, valid macro 97.66%, test micro 84.8%, test macro 84.2%\n",
      "Epoch 20: loss 0.01456, train micro 100.0%, train macro 100.0%, valid micro 98.0%, valid macro 97.99%, test micro 85.18%, test macro 84.67%\n",
      "Epoch 21: loss 0.0123, train micro 100.0%, train macro 100.0%, valid micro 98.0%, valid macro 97.99%, test micro 85.46%, test macro 84.99%\n",
      "Epoch 22: loss 0.01042, train micro 100.0%, train macro 100.0%, valid micro 98.0%, valid macro 97.99%, test micro 85.55%, test macro 85.11%\n",
      "Epoch 23: loss 0.00885, train micro 100.0%, train macro 100.0%, valid micro 98.0%, valid macro 97.99%, test micro 85.84%, test macro 85.42%\n",
      "Epoch 24: loss 0.00752, train micro 100.0%, train macro 100.0%, valid micro 98.33%, valid macro 98.33%, test micro 85.51%, test macro 85.09%\n",
      "Epoch 25: loss 0.00645, train micro 100.0%, train macro 100.0%, valid micro 98.33%, valid macro 98.33%, test micro 85.36%, test macro 84.94%\n",
      "Epoch 26: loss 0.00556, train micro 100.0%, train macro 100.0%, valid micro 98.0%, valid macro 98.0%, test micro 85.46%, test macro 85.05%\n",
      "Epoch 27: loss 0.00468, train micro 100.0%, train macro 100.0%, valid micro 98.0%, valid macro 98.0%, test micro 85.46%, test macro 85.07%\n",
      "Epoch 28: loss 0.00391, train micro 100.0%, train macro 100.0%, valid micro 98.0%, valid macro 98.0%, test micro 85.41%, test macro 85.02%\n",
      "Epoch 29: loss 0.00328, train micro 100.0%, train macro 100.0%, valid micro 98.0%, valid macro 98.0%, test micro 85.08%, test macro 84.67%\n",
      "Epoch 30: loss 0.00276, train micro 100.0%, train macro 100.0%, valid micro 98.0%, valid macro 98.0%, test micro 84.89%, test macro 84.46%\n",
      "Epoch 31: loss 0.00234, train micro 100.0%, train macro 100.0%, valid micro 97.67%, valid macro 97.67%, test micro 84.8%, test macro 84.38%\n",
      "Epoch 32: loss 0.00199, train micro 100.0%, train macro 100.0%, valid micro 97.33%, valid macro 97.33%, test micro 84.75%, test macro 84.34%\n",
      "Epoch 33: loss 0.00171, train micro 100.0%, train macro 100.0%, valid micro 97.33%, valid macro 97.33%, test micro 84.8%, test macro 84.4%\n",
      "Epoch 34: loss 0.00149, train micro 100.0%, train macro 100.0%, valid micro 97.33%, valid macro 97.33%, test micro 84.71%, test macro 84.3%\n",
      "Epoch 35: loss 0.00131, train micro 100.0%, train macro 100.0%, valid micro 97.33%, valid macro 97.33%, test micro 84.56%, test macro 84.17%\n",
      "Epoch 36: loss 0.00117, train micro 100.0%, train macro 100.0%, valid micro 97.33%, valid macro 97.33%, test micro 84.61%, test macro 84.24%\n",
      "Epoch 37: loss 0.00106, train micro 100.0%, train macro 100.0%, valid micro 97.33%, valid macro 97.33%, test micro 84.61%, test macro 84.25%\n",
      "Epoch 38: loss 0.00096, train micro 100.0%, train macro 100.0%, valid micro 97.33%, valid macro 97.33%, test micro 84.66%, test macro 84.3%\n",
      "Epoch 39: loss 0.00089, train micro 100.0%, train macro 100.0%, valid micro 97.33%, valid macro 97.33%, test micro 84.66%, test macro 84.32%\n",
      "Epoch 40: loss 0.00082, train micro 100.0%, train macro 100.0%, valid micro 97.33%, valid macro 97.33%, test micro 84.61%, test macro 84.29%\n",
      "Epoch 41: loss 0.00077, train micro 100.0%, train macro 100.0%, valid micro 97.67%, valid macro 97.67%, test micro 84.56%, test macro 84.23%\n",
      "Epoch 42: loss 0.00072, train micro 100.0%, train macro 100.0%, valid micro 97.67%, valid macro 97.67%, test micro 84.56%, test macro 84.24%\n",
      "Epoch 43: loss 0.00068, train micro 100.0%, train macro 100.0%, valid micro 97.33%, valid macro 97.33%, test micro 84.52%, test macro 84.19%\n",
      "Epoch 44: loss 0.00064, train micro 100.0%, train macro 100.0%, valid micro 97.0%, valid macro 97.0%, test micro 84.66%, test macro 84.35%\n",
      "Epoch 45: loss 0.00061, train micro 100.0%, train macro 100.0%, valid micro 96.33%, valid macro 96.34%, test micro 84.66%, test macro 84.35%\n",
      "Epoch 46: loss 0.00058, train micro 100.0%, train macro 100.0%, valid micro 96.33%, valid macro 96.34%, test micro 84.71%, test macro 84.41%\n",
      "Epoch 47: loss 0.00056, train micro 100.0%, train macro 100.0%, valid micro 96.33%, valid macro 96.34%, test micro 84.61%, test macro 84.31%\n",
      "Epoch 48: loss 0.00054, train micro 100.0%, train macro 100.0%, valid micro 96.33%, valid macro 96.34%, test micro 84.52%, test macro 84.22%\n",
      "Epoch 49: loss 0.00052, train micro 100.0%, train macro 100.0%, valid micro 96.33%, valid macro 96.34%, test micro 84.52%, test macro 84.22%\n",
      "Epoch 50: loss 0.0005, train micro 100.0%, train macro 100.0%, valid micro 96.33%, valid macro 96.34%, test micro 84.47%, test macro 84.19%\n",
      "Epoch 51: loss 0.00048, train micro 100.0%, train macro 100.0%, valid micro 96.33%, valid macro 96.34%, test micro 84.56%, test macro 84.29%\n",
      "Epoch 52: loss 0.00047, train micro 100.0%, train macro 100.0%, valid micro 96.33%, valid macro 96.34%, test micro 84.56%, test macro 84.3%\n",
      "Epoch 53: loss 0.00045, train micro 100.0%, train macro 100.0%, valid micro 96.33%, valid macro 96.34%, test micro 84.52%, test macro 84.26%\n",
      "Epoch 54: loss 0.00044, train micro 100.0%, train macro 100.0%, valid micro 96.33%, valid macro 96.34%, test micro 84.52%, test macro 84.27%\n",
      "Epoch 55: loss 0.00043, train micro 100.0%, train macro 100.0%, valid micro 96.33%, valid macro 96.34%, test micro 84.56%, test macro 84.33%\n",
      "Epoch 56: loss 0.00042, train micro 100.0%, train macro 100.0%, valid micro 96.33%, valid macro 96.34%, test micro 84.47%, test macro 84.23%\n",
      "Epoch 57: loss 0.00041, train micro 100.0%, train macro 100.0%, valid micro 96.33%, valid macro 96.34%, test micro 84.52%, test macro 84.28%\n",
      "Epoch 58: loss 0.0004, train micro 100.0%, train macro 100.0%, valid micro 96.67%, valid macro 96.67%, test micro 84.42%, test macro 84.19%\n",
      "Epoch 59: loss 0.00039, train micro 100.0%, train macro 100.0%, valid micro 96.67%, valid macro 96.67%, test micro 84.33%, test macro 84.1%\n",
      "Epoch 60: loss 0.00038, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 84.38%, test macro 84.16%\n",
      "Epoch 61: loss 0.00037, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 84.33%, test macro 84.11%\n",
      "Epoch 62: loss 0.00037, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 84.38%, test macro 84.17%\n",
      "Epoch 63: loss 0.00036, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 84.33%, test macro 84.12%\n",
      "Epoch 64: loss 0.00035, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 84.28%, test macro 84.08%\n",
      "Epoch 65: loss 0.00035, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 84.33%, test macro 84.14%\n",
      "Epoch 66: loss 0.00034, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 84.33%, test macro 84.14%\n",
      "Epoch 67: loss 0.00034, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 84.33%, test macro 84.15%\n",
      "Epoch 68: loss 0.00033, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 84.33%, test macro 84.16%\n",
      "Epoch 69: loss 0.00033, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 84.14%, test macro 83.98%\n",
      "Epoch 70: loss 0.00032, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 84.14%, test macro 83.98%\n",
      "Epoch 71: loss 0.00032, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 84.19%, test macro 84.03%\n",
      "Epoch 72: loss 0.00031, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 84.14%, test macro 83.98%\n",
      "Epoch 73: loss 0.00031, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 84.14%, test macro 83.98%\n",
      "Epoch 74: loss 0.00031, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 84.14%, test macro 83.99%\n",
      "Epoch 75: loss 0.0003, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 84.14%, test macro 83.99%\n",
      "Epoch 76: loss 0.0003, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 84.14%, test macro 83.99%\n",
      "Epoch 77: loss 0.0003, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 84.14%, test macro 83.99%\n",
      "Epoch 78: loss 0.00029, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 84.05%, test macro 83.9%\n",
      "Epoch 79: loss 0.00029, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 83.95%, test macro 83.8%\n",
      "Epoch 80: loss 0.00029, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 83.95%, test macro 83.8%\n",
      "Epoch 81: loss 0.00028, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 83.95%, test macro 83.8%\n",
      "Epoch 82: loss 0.00028, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 83.86%, test macro 83.71%\n",
      "Epoch 83: loss 0.00028, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 83.76%, test macro 83.62%\n",
      "Epoch 84: loss 0.00027, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 83.81%, test macro 83.67%\n",
      "Epoch 85: loss 0.00027, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 83.86%, test macro 83.72%\n",
      "Epoch 86: loss 0.00027, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 83.86%, test macro 83.72%\n",
      "Epoch 87: loss 0.00027, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 83.91%, test macro 83.76%\n",
      "Epoch 88: loss 0.00026, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 83.86%, test macro 83.71%\n",
      "Epoch 89: loss 0.00026, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 83.86%, test macro 83.71%\n",
      "Epoch 90: loss 0.00026, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 83.86%, test macro 83.71%\n",
      "Epoch 91: loss 0.00026, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 83.81%, test macro 83.66%\n",
      "Epoch 92: loss 0.00025, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 83.81%, test macro 83.66%\n",
      "Epoch 93: loss 0.00025, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 83.76%, test macro 83.62%\n",
      "Epoch 94: loss 0.00025, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 83.81%, test macro 83.67%\n",
      "Epoch 95: loss 0.00025, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 83.81%, test macro 83.67%\n",
      "Epoch 96: loss 0.00025, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 83.81%, test macro 83.67%\n",
      "Epoch 97: loss 0.00024, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 83.81%, test macro 83.67%\n",
      "Epoch 98: loss 0.00024, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 83.81%, test macro 83.67%\n",
      "Epoch 99: loss 0.00024, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 83.81%, test macro 83.67%\n",
      "Epoch 100: loss 0.00024, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 83.72%, test macro 83.58%\n",
      "Best model: train micro 100.0%, train macro 100.0%, valid micro 98.33%, valid macro 98.33%, test micro 85.51%, test macro 85.09%\n"
     ]
    }
   ],
   "source": [
    "best_model = None\n",
    "best_val = 0\n",
    "\n",
    "model = HeteroGNN(hetero_graph, args, aggr=\"mean\").to(args['device'])\n",
    "optimizer = torch.optim.Adam(model.parameters(), lr=args['lr'], weight_decay=args['weight_decay'])\n",
    "\n",
    "for epoch in range(args['epochs']):\n",
    "    loss = train(model, optimizer, hetero_graph, train_idx)\n",
    "    accs, best_model, best_val = test(model, hetero_graph, [train_idx, val_idx, test_idx], best_model, best_val)\n",
    "    print(\n",
    "        f\"Epoch {epoch + 1}: loss {round(loss, 5)}, \"\n",
    "        f\"train micro {round(accs[0][0] * 100, 2)}%, train macro {round(accs[0][1] * 100, 2)}%, \"\n",
    "        f\"valid micro {round(accs[1][0] * 100, 2)}%, valid macro {round(accs[1][1] * 100, 2)}%, \"\n",
    "        f\"test micro {round(accs[2][0] * 100, 2)}%, test macro {round(accs[2][1] * 100, 2)}%\"\n",
    "    )\n",
    "best_accs, _, _ = test(best_model, hetero_graph, [train_idx, val_idx, test_idx])\n",
    "print(\n",
    "    f\"Best model: \"\n",
    "    f\"train micro {round(best_accs[0][0] * 100, 2)}%, train macro {round(best_accs[0][1] * 100, 2)}%, \"\n",
    "    f\"valid micro {round(best_accs[1][0] * 100, 2)}%, valid macro {round(best_accs[1][1] * 100, 2)}%, \"\n",
    "    f\"test micro {round(best_accs[2][0] * 100, 2)}%, test macro {round(best_accs[2][1] * 100, 2)}%\"\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "rtkKBI_nKS1T"
   },
   "source": [
    "## Question 2.1: What is the maximum **micro** F1 score you could get for the best_model on test set when using the mean aggregation? (10 points)\n",
    "\n",
    "Submit your answers on Gradescope."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "AIvw51jMKTvn"
   },
   "source": [
    "## Question 2.2: What is the maximum **macro** F1 score you could get for the best_model on test set when using the mean aggregation? (10 points)\n",
    "\n",
    "Submit your answers on Gradescope."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "JBiYvwcuKd0z"
   },
   "source": [
    "## Training the Attention Aggregation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {
    "id": "e6na5zyQKfvi"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1: loss 1.10169, train micro 33.33%, train macro 16.67%, valid micro 33.33%, valid macro 16.67%, test micro 32.89%, test macro 16.5%\n",
      "Epoch 2: loss 1.09222, train micro 33.83%, train macro 17.71%, valid micro 33.33%, valid macro 16.67%, test micro 32.89%, test macro 16.5%\n",
      "Epoch 3: loss 1.06134, train micro 90.33%, train macro 90.44%, valid micro 86.33%, valid macro 86.48%, test micro 63.58%, test macro 63.53%\n",
      "Epoch 4: loss 0.99919, train micro 77.83%, train macro 75.24%, valid micro 74.0%, valid macro 70.63%, test micro 62.02%, test macro 55.61%\n",
      "Epoch 5: loss 0.89233, train micro 73.0%, train macro 68.47%, valid micro 69.0%, valid macro 62.98%, test micro 64.14%, test macro 55.49%\n",
      "Epoch 6: loss 0.73702, train micro 72.17%, train macro 67.59%, valid micro 66.0%, valid macro 59.95%, test micro 63.15%, test macro 54.23%\n",
      "Epoch 7: loss 0.55611, train micro 73.5%, train macro 69.64%, valid micro 66.33%, valid macro 60.88%, test micro 63.29%, test macro 54.42%\n",
      "Epoch 8: loss 0.39096, train micro 77.83%, train macro 75.46%, valid micro 73.33%, valid macro 70.03%, test micro 65.41%, test macro 56.76%\n",
      "Epoch 9: loss 0.26715, train micro 86.17%, train macro 85.54%, valid micro 82.0%, valid macro 80.84%, test micro 68.05%, test macro 60.99%\n",
      "Epoch 10: loss 0.18385, train micro 92.33%, train macro 92.17%, valid micro 88.67%, valid macro 88.4%, test micro 71.44%, test macro 66.35%\n",
      "Epoch 11: loss 0.12651, train micro 94.67%, train macro 94.62%, valid micro 90.33%, valid macro 90.15%, test micro 73.04%, test macro 68.8%\n",
      "Epoch 12: loss 0.08502, train micro 94.5%, train macro 94.45%, valid micro 90.33%, valid macro 90.21%, test micro 72.56%, test macro 68.28%\n",
      "Epoch 13: loss 0.06026, train micro 95.67%, train macro 95.65%, valid micro 91.0%, valid macro 90.9%, test micro 72.75%, test macro 68.62%\n",
      "Epoch 14: loss 0.04586, train micro 97.0%, train macro 96.99%, valid micro 91.67%, valid macro 91.6%, test micro 74.26%, test macro 70.95%\n",
      "Epoch 15: loss 0.03513, train micro 98.17%, train macro 98.16%, valid micro 92.33%, valid macro 92.29%, test micro 76.61%, test macro 74.22%\n",
      "Epoch 16: loss 0.02719, train micro 98.83%, train macro 98.83%, valid micro 94.33%, valid macro 94.33%, test micro 78.87%, test macro 77.27%\n",
      "Epoch 17: loss 0.02184, train micro 99.33%, train macro 99.33%, valid micro 95.67%, valid macro 95.67%, test micro 81.46%, test macro 80.37%\n",
      "Epoch 18: loss 0.01824, train micro 99.67%, train macro 99.67%, valid micro 97.0%, valid macro 96.99%, test micro 82.87%, test macro 82.06%\n",
      "Epoch 19: loss 0.01567, train micro 99.67%, train macro 99.67%, valid micro 97.67%, valid macro 97.66%, test micro 83.2%, test macro 82.43%\n",
      "Epoch 20: loss 0.01366, train micro 99.83%, train macro 99.83%, valid micro 98.0%, valid macro 97.99%, test micro 83.53%, test macro 82.83%\n",
      "Epoch 21: loss 0.01195, train micro 99.83%, train macro 99.83%, valid micro 97.67%, valid macro 97.66%, test micro 83.58%, test macro 82.89%\n",
      "Epoch 22: loss 0.01041, train micro 99.83%, train macro 99.83%, valid micro 97.67%, valid macro 97.66%, test micro 83.58%, test macro 82.89%\n",
      "Epoch 23: loss 0.00901, train micro 99.83%, train macro 99.83%, valid micro 97.67%, valid macro 97.66%, test micro 83.44%, test macro 82.74%\n",
      "Epoch 24: loss 0.00783, train micro 100.0%, train macro 100.0%, valid micro 97.33%, valid macro 97.32%, test micro 83.34%, test macro 82.64%\n",
      "Epoch 25: loss 0.0069, train micro 100.0%, train macro 100.0%, valid micro 97.33%, valid macro 97.32%, test micro 83.01%, test macro 82.27%\n",
      "Epoch 26: loss 0.00614, train micro 100.0%, train macro 100.0%, valid micro 97.0%, valid macro 96.99%, test micro 82.87%, test macro 82.12%\n",
      "Epoch 27: loss 0.00548, train micro 100.0%, train macro 100.0%, valid micro 97.0%, valid macro 96.99%, test micro 82.59%, test macro 81.83%\n",
      "Epoch 28: loss 0.00491, train micro 100.0%, train macro 100.0%, valid micro 97.33%, valid macro 97.33%, test micro 82.64%, test macro 81.9%\n",
      "Epoch 29: loss 0.0044, train micro 100.0%, train macro 100.0%, valid micro 97.33%, valid macro 97.33%, test micro 82.21%, test macro 81.45%\n",
      "Epoch 30: loss 0.0038, train micro 100.0%, train macro 100.0%, valid micro 97.0%, valid macro 97.01%, test micro 81.79%, test macro 81.0%\n",
      "Epoch 31: loss 0.00314, train micro 100.0%, train macro 100.0%, valid micro 96.33%, valid macro 96.34%, test micro 81.69%, test macro 80.91%\n",
      "Epoch 32: loss 0.00258, train micro 100.0%, train macro 100.0%, valid micro 96.33%, valid macro 96.34%, test micro 81.41%, test macro 80.64%\n",
      "Epoch 33: loss 0.00214, train micro 100.0%, train macro 100.0%, valid micro 96.33%, valid macro 96.34%, test micro 81.13%, test macro 80.36%\n",
      "Epoch 34: loss 0.00178, train micro 100.0%, train macro 100.0%, valid micro 96.33%, valid macro 96.34%, test micro 80.75%, test macro 79.98%\n",
      "Epoch 35: loss 0.0015, train micro 100.0%, train macro 100.0%, valid micro 96.33%, valid macro 96.34%, test micro 80.61%, test macro 79.85%\n",
      "Epoch 36: loss 0.00129, train micro 100.0%, train macro 100.0%, valid micro 96.33%, valid macro 96.34%, test micro 80.24%, test macro 79.47%\n",
      "Epoch 37: loss 0.00112, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 80.09%, test macro 79.34%\n",
      "Epoch 38: loss 0.00099, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 79.76%, test macro 79.01%\n",
      "Epoch 39: loss 0.00089, train micro 100.0%, train macro 100.0%, valid micro 96.33%, valid macro 96.34%, test micro 79.72%, test macro 78.97%\n",
      "Epoch 40: loss 0.00081, train micro 100.0%, train macro 100.0%, valid micro 96.33%, valid macro 96.34%, test micro 79.81%, test macro 79.09%\n",
      "Epoch 41: loss 0.00075, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 79.95%, test macro 79.28%\n",
      "Epoch 42: loss 0.0007, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.0%, test micro 79.81%, test macro 79.15%\n",
      "Epoch 43: loss 0.00065, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.0%, test micro 79.81%, test macro 79.16%\n",
      "Epoch 44: loss 0.00061, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.0%, test micro 79.62%, test macro 79.0%\n",
      "Epoch 45: loss 0.00058, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 79.91%, test macro 79.31%\n",
      "Epoch 46: loss 0.00054, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 79.91%, test macro 79.32%\n",
      "Epoch 47: loss 0.00052, train micro 100.0%, train macro 100.0%, valid micro 95.33%, valid macro 95.34%, test micro 80.14%, test macro 79.58%\n",
      "Epoch 48: loss 0.00049, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 80.38%, test macro 79.85%\n",
      "Epoch 49: loss 0.00047, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 80.38%, test macro 79.86%\n",
      "Epoch 50: loss 0.00045, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 80.47%, test macro 79.97%\n",
      "Epoch 51: loss 0.00043, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 80.52%, test macro 80.03%\n",
      "Epoch 52: loss 0.00042, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 80.47%, test macro 79.98%\n",
      "Epoch 53: loss 0.0004, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 80.47%, test macro 79.99%\n",
      "Epoch 54: loss 0.00039, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 80.56%, test macro 80.09%\n",
      "Epoch 55: loss 0.00038, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 80.61%, test macro 80.15%\n",
      "Epoch 56: loss 0.00036, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 80.52%, test macro 80.07%\n",
      "Epoch 57: loss 0.00035, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 80.52%, test macro 80.07%\n",
      "Epoch 58: loss 0.00034, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.68%, test micro 80.56%, test macro 80.12%\n",
      "Epoch 59: loss 0.00034, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 80.66%, test macro 80.22%\n",
      "Epoch 60: loss 0.00033, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 80.61%, test macro 80.19%\n",
      "Epoch 61: loss 0.00032, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 80.61%, test macro 80.2%\n",
      "Epoch 62: loss 0.00031, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.01%, test micro 80.66%, test macro 80.25%\n",
      "Epoch 63: loss 0.00031, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 80.71%, test macro 80.3%\n",
      "Epoch 64: loss 0.0003, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 80.61%, test macro 80.22%\n",
      "Epoch 65: loss 0.00029, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 80.61%, test macro 80.23%\n",
      "Epoch 66: loss 0.00029, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 80.61%, test macro 80.23%\n",
      "Epoch 67: loss 0.00028, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 80.52%, test macro 80.15%\n",
      "Epoch 68: loss 0.00028, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 80.56%, test macro 80.2%\n",
      "Epoch 69: loss 0.00027, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 80.61%, test macro 80.26%\n",
      "Epoch 70: loss 0.00027, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 80.61%, test macro 80.27%\n",
      "Epoch 71: loss 0.00026, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 80.66%, test macro 80.32%\n",
      "Epoch 72: loss 0.00026, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 80.66%, test macro 80.33%\n",
      "Epoch 73: loss 0.00026, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.0%, test micro 80.61%, test macro 80.27%\n",
      "Epoch 74: loss 0.00025, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.0%, test micro 80.61%, test macro 80.28%\n",
      "Epoch 75: loss 0.00025, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.0%, test micro 80.61%, test macro 80.28%\n",
      "Epoch 76: loss 0.00024, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.0%, test micro 80.61%, test macro 80.28%\n",
      "Epoch 77: loss 0.00024, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.0%, test micro 80.71%, test macro 80.39%\n",
      "Epoch 78: loss 0.00024, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.0%, test micro 80.71%, test macro 80.4%\n",
      "Epoch 79: loss 0.00024, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.0%, test micro 80.66%, test macro 80.35%\n",
      "Epoch 80: loss 0.00023, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.0%, test micro 80.66%, test macro 80.36%\n",
      "Epoch 81: loss 0.00023, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.0%, test micro 80.66%, test macro 80.36%\n",
      "Epoch 82: loss 0.00023, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.0%, test micro 80.66%, test macro 80.36%\n",
      "Epoch 83: loss 0.00022, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.0%, test micro 80.66%, test macro 80.36%\n",
      "Epoch 84: loss 0.00022, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.0%, test micro 80.66%, test macro 80.36%\n",
      "Epoch 85: loss 0.00022, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.0%, test micro 80.61%, test macro 80.3%\n",
      "Epoch 86: loss 0.00022, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.0%, test micro 80.56%, test macro 80.25%\n",
      "Epoch 87: loss 0.00021, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.0%, test micro 80.56%, test macro 80.25%\n",
      "Epoch 88: loss 0.00021, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.0%, test micro 80.52%, test macro 80.2%\n",
      "Epoch 89: loss 0.00021, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.0%, test micro 80.47%, test macro 80.15%\n",
      "Epoch 90: loss 0.00021, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.0%, test micro 80.47%, test macro 80.15%\n",
      "Epoch 91: loss 0.0002, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.0%, test micro 80.33%, test macro 80.01%\n",
      "Epoch 92: loss 0.0002, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.0%, test micro 80.28%, test macro 79.96%\n",
      "Epoch 93: loss 0.0002, train micro 100.0%, train macro 100.0%, valid micro 96.0%, valid macro 96.0%, test micro 80.28%, test macro 79.95%\n",
      "Epoch 94: loss 0.0002, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 80.28%, test macro 79.95%\n",
      "Epoch 95: loss 0.0002, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 80.33%, test macro 80.0%\n",
      "Epoch 96: loss 0.00019, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 80.28%, test macro 79.95%\n",
      "Epoch 97: loss 0.00019, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 80.24%, test macro 79.9%\n",
      "Epoch 98: loss 0.00019, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 80.24%, test macro 79.9%\n",
      "Epoch 99: loss 0.00019, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 80.24%, test macro 79.9%\n",
      "Epoch 100: loss 0.00019, train micro 100.0%, train macro 100.0%, valid micro 95.67%, valid macro 95.67%, test micro 80.14%, test macro 79.82%\n",
      "Best model: train micro 99.83%, train macro 99.83%, valid micro 98.0%, valid macro 97.99%, test micro 83.53%, test macro 82.83%\n"
     ]
    }
   ],
   "source": [
    "best_model = None\n",
    "best_val = 0\n",
    "\n",
    "output_size = hetero_graph.num_node_labels('paper')\n",
    "model = HeteroGNN(hetero_graph, args, aggr=\"attn\").to(args['device'])\n",
    "optimizer = torch.optim.Adam(model.parameters(), lr=args['lr'], weight_decay=args['weight_decay'])\n",
    "\n",
    "for epoch in range(args['epochs']):\n",
    "    loss = train(model, optimizer, hetero_graph, train_idx)\n",
    "    accs, best_model, best_val = test(model, hetero_graph, [train_idx, val_idx, test_idx], best_model, best_val)\n",
    "    print(\n",
    "        f\"Epoch {epoch + 1}: loss {round(loss, 5)}, \"\n",
    "        f\"train micro {round(accs[0][0] * 100, 2)}%, train macro {round(accs[0][1] * 100, 2)}%, \"\n",
    "        f\"valid micro {round(accs[1][0] * 100, 2)}%, valid macro {round(accs[1][1] * 100, 2)}%, \"\n",
    "        f\"test micro {round(accs[2][0] * 100, 2)}%, test macro {round(accs[2][1] * 100, 2)}%\"\n",
    "    )\n",
    "best_accs, _, _ = test(best_model, hetero_graph, [train_idx, val_idx, test_idx])\n",
    "print(\n",
    "    f\"Best model: \"\n",
    "    f\"train micro {round(best_accs[0][0] * 100, 2)}%, train macro {round(best_accs[0][1] * 100, 2)}%, \"\n",
    "    f\"valid micro {round(best_accs[1][0] * 100, 2)}%, valid macro {round(best_accs[1][1] * 100, 2)}%, \"\n",
    "    f\"test micro {round(best_accs[2][0] * 100, 2)}%, test macro {round(best_accs[2][1] * 100, 2)}%\"\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "mtAhFLQQKgbl"
   },
   "source": [
    "## Question 2.3: What is the maximum **micro** F1 score you could get for the best_model on test set when using the attention aggregation? (4 points)\n",
    "\n",
    "Submit your answers on Gradescope."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "_cnsMGbsqJG_"
   },
   "source": [
    "## Question 2.4: What is the maximum **macro** F1 score you could get for the best_model on test set when using the attention aggregation? (4 points)\n",
    "\n",
    "Submit your answers on Gradescope."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "aQgx5y4UqMHH"
   },
   "source": [
    "## Attention for each Message Type\n",
    "\n",
    "Through message type level attention we can learn that which message type is more important to which layer.\n",
    "\n",
    "Here we will print out and show that each layer pay how much attention on each message type."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {
    "id": "hvK58gijqN_C"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Layer 1 has attention 0.23350580036640167 on message type ('paper', 'author', 'paper')\n",
      "Layer 1 has attention 0.7664942145347595 on message type ('paper', 'subject', 'paper')\n",
      "Layer 2 has attention 0.6374955773353577 on message type ('paper', 'author', 'paper')\n",
      "Layer 2 has attention 0.36250442266464233 on message type ('paper', 'subject', 'paper')\n"
     ]
    }
   ],
   "source": [
    "if model.convs1.alpha is not None and model.convs2.alpha is not None:\n",
    "    for idx, message_type in model.convs1.mapping.items():\n",
    "        print(f\"Layer 1 has attention {model.convs1.alpha[idx]} on message type {message_type}\")\n",
    "    for idx, message_type in model.convs2.mapping.items():\n",
    "        print(f\"Layer 2 has attention {model.convs2.alpha[idx]} on message type {message_type}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "accelerator": "GPU",
  "colab": {
   "collapsed_sections": [],
   "machine_shape": "hm",
   "name": "CS224W - Colab 4.ipynb",
   "provenance": [],
   "toc_visible": true
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
